Skip to main content

safe_migrate/model/
replication.rs

1use crate::analysis::facts::{AttributeFact, ConnectionTarget, PublicationScope};
2use serde::{Deserialize, Serialize};
3
4#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
5pub struct PublicationState {
6    pub name: String,
7    pub scope: PublicationScope,
8    pub params: Vec<AttributeFact>,
9    pub generation: u64,
10}
11
12#[derive(Debug, Clone, PartialEq)]
13pub enum PublicationOverlay {
14    Present(PublicationState),
15    Dropped,
16}
17
18#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
19pub struct SubscriptionState {
20    pub name: String,
21    pub connection: ConnectionTarget,
22    pub publications: Vec<String>,
23    pub params: Option<Vec<AttributeFact>>,
24    pub generation: u64,
25}
26
27#[derive(Debug, Clone, PartialEq)]
28pub enum SubscriptionOverlay {
29    Present(SubscriptionState),
30    Dropped,
31}