pub enum Usefulness<'p, Cx: PatCx> {
Useful(Vec<&'p DeconstructedPat<Cx>>),
Redundant,
}
Expand description
Indicates whether or not a given arm is useful.
Variants§
Useful(Vec<&'p DeconstructedPat<Cx>>)
The arm is useful. This additionally carries a set of or-pattern branches that have been found to be redundant despite the overall arm being useful. Used only in the presence of or-patterns, otherwise it stays empty.
Redundant
The arm is redundant and can be removed without changing the behavior of the match expression.
Trait Implementations§
Auto Trait Implementations§
impl<'p, Cx> DynSend for Usefulness<'p, Cx>
impl<'p, Cx> DynSync for Usefulness<'p, Cx>
impl<'p, Cx> Freeze for Usefulness<'p, Cx>
impl<'p, Cx> RefUnwindSafe for Usefulness<'p, Cx>where
<Cx as PatCx>::PatData: RefUnwindSafe,
<Cx as PatCx>::StrLit: RefUnwindSafe,
<Cx as PatCx>::Ty: RefUnwindSafe,
<Cx as PatCx>::VariantIdx: RefUnwindSafe,
impl<'p, Cx> Send for Usefulness<'p, Cx>
impl<'p, Cx> Sync for Usefulness<'p, Cx>
impl<'p, Cx> Unpin for Usefulness<'p, Cx>
impl<'p, Cx> UnwindSafe for Usefulness<'p, Cx>where
<Cx as PatCx>::PatData: RefUnwindSafe,
<Cx as PatCx>::StrLit: RefUnwindSafe,
<Cx as PatCx>::Ty: RefUnwindSafe,
<Cx as PatCx>::VariantIdx: RefUnwindSafe,
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
source§impl<T, R> CollectAndApply<T, R> for T
impl<T, R> CollectAndApply<T, R> for T
§impl<T> Filterable for T
impl<T> Filterable for T
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<P> IntoQueryParam<P> for P
impl<P> IntoQueryParam<P> for P
fn into_query_param(self) -> P
source§impl<T> MaybeResult<T> for T
impl<T> MaybeResult<T> for T
§impl<T> Pointable for T
impl<T> Pointable for T
source§impl<'tcx, T> ToPredicate<'tcx, T> for T
impl<'tcx, T> ToPredicate<'tcx, T> for T
fn to_predicate(self, _tcx: TyCtxt<'tcx>) -> T
source§impl<Tcx, T> Value<Tcx> for Twhere
Tcx: DepContext,
impl<Tcx, T> Value<Tcx> for Twhere
Tcx: DepContext,
default fn from_cycle_error( tcx: Tcx, cycle_error: &CycleError, _guar: ErrorGuaranteed ) -> T
source§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
source§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
source§fn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
impl<'a, T> Captures<'a> for Twhere
T: ?Sized,
impl<'a, T> Captures<'a> for Twhere
T: ?Sized,
impl<T> ErasedDestructor for Twhere
T: 'static,
impl<T> MaybeSendSync for T
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: 24 bytes
Size for each variant:
Useful
: 24 bytesRedundant
: 0 bytes