pub struct Need<'a> {
pub circuit: &'a Circuit,
pub settings: &'a BTreeMap<String, String>,
pub rows: u64,
pub stored: Vec<Format>,
pub group_of: Vec<Option<usize>>,
pub edge_states: Vec<Option<EdgeState>>,
pub held: BTreeMap<EdgeIdx, Format>,
pub stated: BTreeMap<NodeIdx, BTreeMap<StepKind, Value>>,
}Expand description
2026-10-02: Everything a requirement reads besides the node.
Fields§
§circuit: &'a Circuit2026-10-02: The circuit.
settings: &'a BTreeMap<String, String>2026-10-02: The policy’s settings.
rows: u642026-10-02: The row count the plan runs (the activation-quantization ladder reads it).
stored: Vec<Format>2026-10-02: Each edge’s stored format.
group_of: Vec<Option<usize>>2026-10-02: Each node’s group under the plan; all None without one.
edge_states: Vec<Option<EdgeState>>2026-10-02: Each edge’s state under the plan; all None without one.
held: BTreeMap<EdgeIdx, Format>2026-10-02: In-group hand-off formats the plan’s rules state (holds), by edge.
stated: BTreeMap<NodeIdx, BTreeMap<StepKind, Value>>2026-10-02: Step values the plan’s rules state (steps), by node.
Implementations§
Source§impl<'a> Need<'a>
impl<'a> Need<'a>
Sourcepub fn base(
circuit: &'a Circuit,
settings: &'a BTreeMap<String, String>,
rows: u64,
) -> Self
pub fn base( circuit: &'a Circuit, settings: &'a BTreeMap<String, String>, rows: u64, ) -> Self
2026-10-02: The requirement before any plan: the circuit’s own formats.
Sourcepub fn of_plan(
circuit: &'a Circuit,
plan: &FusionPlan,
rules: &[Rule],
settings: &'a BTreeMap<String, String>,
) -> Self
pub fn of_plan( circuit: &'a Circuit, plan: &FusionPlan, rules: &[Rule], settings: &'a BTreeMap<String, String>, ) -> Self
2026-10-02: The requirement under plan, whose groups’ rules are among rules (a
group whose rule is not there, a hardware planner’s placeholder, states nothing).
Sourcepub fn held_input(&self, node: NodeIdx, e: EdgeIdx) -> bool
pub fn held_input(&self, node: NodeIdx, e: EdgeIdx) -> bool
2026-10-02: Node node reads edge e from a producer in its own group, in a format a
rule states that producer holds it in.
Sourcepub fn holds_in_group(&self, e: EdgeIdx) -> bool
pub fn holds_in_group(&self, e: EdgeIdx) -> bool
2026-10-02: Edge e is handed on inside its group in a format a rule states.
Sourcepub fn stated_steps(&self, n: NodeIdx) -> impl Iterator<Item = StepKind> + '_
pub fn stated_steps(&self, n: NodeIdx) -> impl Iterator<Item = StepKind> + '_
2026-10-02: The steps a rule states for node n.