#[non_exhaustive]pub enum NodeResult<U: StateUpdate> {
Update(U),
Interrupt(InterruptRequest<U>),
Error(PeError),
Converge(ConvergenceSignal<U>),
}Expand description
What a node can return — unified enum covering all execution outcomes.
Every variant works standalone. Converge adds optional matrix data
but degrades to Update automatically when the matrix layer isn’t active.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
Update(U)
Normal completion — apply this update to state
Interrupt(InterruptRequest<U>)
Pause for human input — checkpoint and wait
Error(PeError)
Unrecoverable error — propagate to caller
Converge(ConvergenceSignal<U>)
Optional convergence signal — carries quality/surprise metadata. Without the matrix layer, degrades to Update(signal.partial_update). With the matrix layer, the extra metadata guides learned routing.
Implementations§
Source§impl<U: StateUpdate> NodeResult<U>
impl<U: StateUpdate> NodeResult<U>
Sourcepub fn into_standard(self) -> NodeResult<U>
pub fn into_standard(self) -> NodeResult<U>
Strip optional convergence metadata — Converge becomes plain Update. Called automatically by the engine when the matrix layer is not active.
Sourcepub fn is_interrupt(&self) -> bool
pub fn is_interrupt(&self) -> bool
Check if this result is an interrupt
Trait Implementations§
Source§impl<U: Clone + StateUpdate> Clone for NodeResult<U>
impl<U: Clone + StateUpdate> Clone for NodeResult<U>
Source§fn clone(&self) -> NodeResult<U>
fn clone(&self) -> NodeResult<U>
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl<U> Freeze for NodeResult<U>where
U: Freeze,
impl<U> RefUnwindSafe for NodeResult<U>where
U: RefUnwindSafe,
impl<U> Send for NodeResult<U>
impl<U> Sync for NodeResult<U>
impl<U> Unpin for NodeResult<U>where
U: Unpin,
impl<U> UnsafeUnpin for NodeResult<U>where
U: UnsafeUnpin,
impl<U> UnwindSafe for NodeResult<U>where
U: UnwindSafe,
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
Mutably borrows from an owned value. Read more