canic_core/api/
cascade.rs

1use crate::{
2    dto::{
3        cascade::{StateSnapshotView, TopologySnapshotView},
4        error::Error,
5    },
6    workflow::cascade::{state::StateCascadeWorkflow, topology::TopologyCascadeWorkflow},
7};
8
9///
10/// CascadeApi
11///
12
13pub struct CascadeApi;
14
15impl CascadeApi {
16    pub async fn sync_state(view: StateSnapshotView) -> Result<(), Error> {
17        StateCascadeWorkflow::nonroot_cascade_state(view)
18            .await
19            .map_err(Error::from)
20    }
21
22    pub async fn sync_topology(view: TopologySnapshotView) -> Result<(), Error> {
23        TopologyCascadeWorkflow::nonroot_cascade_topology(view)
24            .await
25            .map_err(Error::from)
26    }
27}