canic_core/workflow/
app.rs1use crate::{
2 Error,
3 dto::state::AppCommand,
4 ops::{runtime::env::EnvOps, storage::state::AppStateOps},
5 workflow::{cascade::state::root_cascade_state, snapshot::StateSnapshotBuilder},
6};
7
8pub struct AppStateOrchestrator;
13
14impl AppStateOrchestrator {
15 pub async fn apply_command(cmd: AppCommand) -> Result<(), Error> {
16 EnvOps::require_root()?;
17 AppStateOps::command(cmd)?;
18
19 let snapshot = StateSnapshotBuilder::new().with_app_state().build();
20 root_cascade_state(&snapshot).await?;
21
22 Ok(())
23 }
24}