enum ForestEvent {
NodeState {
plan_id: String,
node_state: Box<RtdlNodeState>,
},
PlanDone {
plan_id: String,
results: Vec<RtdlNodeState>,
any_failed: bool,
canceled: bool,
},
}Expand description
Events fed from per-tree driver tasks back to the supervisor loop. One
drive_plan task runs per dispatched tree and streams these.
Variants§
NodeState
A node changed state — forwarded for live visualisation. Carries the
originating tree’s plan_id. The state is boxed because it is much
larger than the other variant’s payload.
PlanDone
A tree finished (or its Execute stream ended/errored). Carries one
full RtdlNodeState record for every node that reached a terminal
state (leaf and non-leaf), collected from the tree.
Fields
results: Vec<RtdlNodeState>canceled: boolTrue when this tree ended because it was canceled (a node reached CANCELED), as opposed to running to natural success/failure. A cancellation fulfils a prior decision and carries no new info, so the supervisor must NOT trigger a fresh planning round for it — otherwise “cancel old plan → PlanDone → replan → model re-cancels” becomes a self-sustaining storm with monotonically growing plan ids.
Auto Trait Implementations§
impl Freeze for ForestEvent
impl RefUnwindSafe for ForestEvent
impl Send for ForestEvent
impl Sync for ForestEvent
impl Unpin for ForestEvent
impl UnsafeUnpin for ForestEvent
impl UnwindSafe for ForestEvent
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Layered].