Skip to main content

maintenance_flow/
maintenance_flow.rs

1//! Minimal caller-driven maintenance flow using retained product-path storage.
2
3use sectorsync::low_level::runtime::{EventRouter, StationIndexSet, StationSet};
4use sectorsync::prelude::{LoadSampler, SplitExecutor, StationExecutor, Tick};
5
6fn main() {
7    let mut stations = StationSet::default();
8    let indexes = StationIndexSet::default();
9    let mut router = EventRouter::default();
10
11    let mut sampler = LoadSampler::default();
12    let load = sampler.sample(&stations, &indexes, &router, &[]);
13
14    let mut splits = SplitExecutor::default();
15    let schedule = splits.plan(load, Tick::new(1));
16    let mut station_execution = StationExecutor::default();
17    let advances = station_execution
18        .advance_loaded(&mut stations, load)
19        .stations_selected;
20    let ready_events = station_execution
21        .drain_ready_events(&stations, &mut router)
22        .expect("empty event drain should work")
23        .len();
24
25    println!("samples={}", load.len());
26    println!("split_actions={}", schedule.actions.len());
27    println!("station_advances={advances}");
28    println!("ready_events={ready_events}");
29}