pub enum WakeConditionPurityError {
UnknownCondition {
condition: String,
},
NotAFunctionValue,
MissingEffectRow {
condition: String,
},
Writes {
condition: String,
writes: Vec<String>,
},
Opaque {
condition: String,
},
ExternalWrites {
condition: String,
external: String,
writes: Vec<String>,
},
CommandBinding {
condition: String,
external: String,
},
}Expand description
A wake condition failed the attach-time purity check. See the module section above for the contract this enforces.
Variants§
UnknownCondition
The condition name/path didn’t resolve to any definition in this story.
Fields
NotAFunctionValue
The condition value wasn’t a function value (FnRef/Closure) at
all — check_value_condition_purity only has a target definition to
inspect for an actual fn-value token.
MissingEffectRow
The condition resolved to a definition, but this story’s (non-empty)
EffectRows table has no row for it — an internal invariant
violation (every knot/stitch ships one once the table is populated at
all), never a panic: conservatively treated as impure.
Writes
The condition (or a dispatch fallback its row folds in) writes one or more global cells.
Fields
Opaque
The condition’s row (or a dispatch fallback) is opaque — effects inference couldn’t summarize a call it makes (§3’s pessimal top). Purity can’t be proven, so it’s conservatively rejected.
ExternalWrites
The condition (or a dispatch fallback its row folds in) calls a
host-registered EXTERNAL binding whose CapabilityManifest entry
declares one or more writes capabilities (issue #1040, the #995
follow-up; docs/effects-spec.md §9/§13).
Fields
CommandBinding
The condition (or a dispatch fallback its row folds in) calls a
bind_brink_command-bound
EXTERNAL (issue #1609, an #1096 follow-up). Rejected regardless of
CapabilityManifest presence: bevy-brink knows the binding kind
locally, and a command binding mutates the World when its parsed
event is triggered, so a wake condition reaching it would let
re-evaluation fire that mutation repeatedly (§13.1 point 2).
Trait Implementations§
Source§impl Clone for WakeConditionPurityError
impl Clone for WakeConditionPurityError
Source§fn clone(&self) -> WakeConditionPurityError
fn clone(&self) -> WakeConditionPurityError
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 WakeConditionPurityError
impl Debug for WakeConditionPurityError
Source§impl Display for WakeConditionPurityError
impl Display for WakeConditionPurityError
impl Eq for WakeConditionPurityError
Source§impl Error for WakeConditionPurityError
impl Error for WakeConditionPurityError
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 WakeConditionPurityError
impl PartialEq for WakeConditionPurityError
impl StructuralPartialEq for WakeConditionPurityError
Auto Trait Implementations§
impl Freeze for WakeConditionPurityError
impl RefUnwindSafe for WakeConditionPurityError
impl Send for WakeConditionPurityError
impl Sync for WakeConditionPurityError
impl Unpin for WakeConditionPurityError
impl UnsafeUnpin for WakeConditionPurityError
impl UnwindSafe for WakeConditionPurityError
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,
impl<T> ConditionalSend for Twhere
T: Send,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
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.