pub enum RuleFailureInvalidation {
ExpressionOrSymbols,
SymbolsOnly,
}Expand description
State changes that can invalidate a failed rule application.
Most rules may become applicable when either their focused expression or the symbol table changes. A small number of Root rules use the expression only as an entry point and decide applicability entirely from declarations. Remembering their failed applications until the symbol table changes avoids repeatedly scanning every declaration after unrelated expression rewrites.
Variants§
ExpressionOrSymbols
Reconsider a failed application after any relevant expression or symbol-table change.
SymbolsOnly
Reconsider a failed application only after the symbol table changes.
Trait Implementations§
Source§impl Clone for RuleFailureInvalidation
impl Clone for RuleFailureInvalidation
Source§fn clone(&self) -> RuleFailureInvalidation
fn clone(&self) -> RuleFailureInvalidation
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for RuleFailureInvalidation
Source§impl Debug for RuleFailureInvalidation
impl Debug for RuleFailureInvalidation
Source§impl Default for RuleFailureInvalidation
impl Default for RuleFailureInvalidation
Source§fn default() -> RuleFailureInvalidation
fn default() -> RuleFailureInvalidation
impl Eq for RuleFailureInvalidation
Source§impl Hash for RuleFailureInvalidation
impl Hash for RuleFailureInvalidation
Source§impl PartialEq for RuleFailureInvalidation
impl PartialEq for RuleFailureInvalidation
impl StructuralPartialEq for RuleFailureInvalidation
Auto Trait Implementations§
impl Freeze for RuleFailureInvalidation
impl RefUnwindSafe for RuleFailureInvalidation
impl Send for RuleFailureInvalidation
impl Sync for RuleFailureInvalidation
impl Unpin for RuleFailureInvalidation
impl UnsafeUnpin for RuleFailureInvalidation
impl UnwindSafe for RuleFailureInvalidation
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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreimpl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘwhere
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘwhere
S: Into<Dispatch>,
§fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ
fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 1 byte
Size for each variant:
ExpressionOrSymbols: 0 bytesSymbolsOnly: 0 bytes