pub enum DispatchRefusal {
CompositionMismatch {
expected: CompositionId,
actual: CompositionId,
},
UnresolvedRoute {
composition: CompositionId,
instance: MachineInstanceId,
variant: EffectVariantId,
},
MissingProducerField {
route: RouteId,
variant: EffectVariantId,
field: FieldId,
},
UnwiredConsumer {
composition: CompositionId,
instance: MachineInstanceId,
},
ConsumerRefused {
instance: MachineInstanceId,
variant: InputVariantId,
reason: String,
},
}Expand description
Reasons the dispatcher refuses a routed effect.
Unlike the deleted helper path, there is no “silently drop unknown effects” arm. Every failure is a typed variant so callers and RMAT audits can enumerate them without parsing error strings.
Variants§
CompositionMismatch
The producer is not registered for this dispatcher’s composition.
UnresolvedRoute
No input-kind route is declared for (producer.instance_id, variant).
MissingProducerField
A route-binding references a producer field that the effect body did
not supply (via ProducerEffect::field).
UnwiredConsumer
No ConsumerSurface is registered for the resolved target
instance. This is a wiring bug at construction time, not a runtime
signal — the dispatcher refuses rather than queueing forever.
ConsumerRefused
The consumer surface rejected the typed input (e.g. because the consumer machine is no longer accepting inputs). The inner message is the consumer-side rejection reason and is opaque to the dispatcher — typed by the consumer’s own error.
Trait Implementations§
Source§impl Clone for DispatchRefusal
impl Clone for DispatchRefusal
Source§fn clone(&self) -> DispatchRefusal
fn clone(&self) -> DispatchRefusal
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for DispatchRefusal
impl Debug for DispatchRefusal
Source§impl Display for DispatchRefusal
impl Display for DispatchRefusal
Source§impl Error for DispatchRefusal
impl Error for DispatchRefusal
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()
Source§impl PartialEq for DispatchRefusal
impl PartialEq for DispatchRefusal
Source§fn eq(&self, other: &DispatchRefusal) -> bool
fn eq(&self, other: &DispatchRefusal) -> bool
self and other values to be equal, and is used by ==.impl Eq for DispatchRefusal
impl StructuralPartialEq for DispatchRefusal
Auto Trait Implementations§
impl Freeze for DispatchRefusal
impl RefUnwindSafe for DispatchRefusal
impl Send for DispatchRefusal
impl Sync for DispatchRefusal
impl Unpin for DispatchRefusal
impl UnsafeUnpin for DispatchRefusal
impl UnwindSafe for DispatchRefusal
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.