Skip to main content

Module planner

Module planner 

Source
Expand description

Execution planning: the pluggable CuPlanner trait, the planners shipped with copper, and the shared assembly of the generated CopperList plan.

A planner only decides a StepOrder over the synthetic plan graph; a shared pipeline validates the order and materializes the exact plan the runtime generates. Planners run at build time, never on the robot: the ship-with-copper ones execute inside #[copper_runtime], out-of-tree ones in the application’s build.rs via emit_plan.

Structs§

Linearity
The default planner: best-effort linearity, keeping each source-to-sink chain contiguous. Needs no measurements and is bit-identical to the historical copper order.
Pinned
Replays an explicit task order: config: { "order": [..] } lists every task of the mission exactly once, by RON id; bridge stages are placed automatically next to their tasks. This is what an offline plan search writes back.
StepOrder
The only decision a planner makes: a total step order over plan NodeIds.

Traits§

CuPlanner
A pluggable execution planner, selected by runtime.planner in the RON config (mirroring how monitors are selected by type).

Functions§

emit_plan
Resolve an out-of-tree CuPlanner for config_path and write the resulting step orders where #[copper_runtime] picks them up.