canic_core/api/
cascade.rs

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