safe_migrate/model/
replication.rs1use 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 owner: Option<String>,
8 pub scope: PublicationScope,
9 pub params: Vec<AttributeFact>,
10 pub generation: u64,
11}
12
13#[derive(Debug, Clone, PartialEq)]
14pub enum PublicationOverlay {
15 Present(PublicationState),
16 Dropped,
17}
18
19#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
20pub struct SubscriptionState {
21 pub name: String,
22 pub owner: Option<String>,
23 pub connection: ConnectionTarget,
24 pub publications: Vec<String>,
25 pub params: Option<Vec<AttributeFact>>,
26 pub enabled: bool,
27 pub slot_name: Option<String>,
28 pub generation: u64,
29}
30
31#[derive(Debug, Clone, PartialEq)]
32pub enum SubscriptionOverlay {
33 Present(SubscriptionState),
34 Dropped,
35}