use rust_supervisor::config::loader::load_config_state;
use rust_supervisor::runtime::supervisor::Supervisor;
type ExampleResult = Result<(), rust_supervisor::error::types::SupervisorError>;
#[tokio::main]
async fn main() -> ExampleResult {
let state = load_config_state("examples/config/supervisor.yaml")?;
let spec = state.to_supervisor_spec()?;
let handle = Supervisor::start(spec).await?;
let current = handle.current_state().await?;
println!("{current:#?}");
handle
.shutdown_tree("operator", "quickstart complete")
.await?;
Ok(())
}