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 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}