enum PeelKind {
ExplicitDerefPat,
Implicit {
until_adt: Option<AdtId>,
pat_ref_layers: usize,
},
}Expand description
Restrictions on what types to peel when adjusting the expected type and binding mode.
Variants§
ExplicitDerefPat
Only peel reference types. This is used for explicit deref!(_) patterns, which dereference
any number of &/&mut references, plus a single smart pointer.
Implicit
Implicitly peel references, and if deref_patterns is enabled, smart pointer ADTs.
Fields
§
until_adt: Option<AdtId>The ADT the pattern is a constructor for, if applicable, so that we don’t peel it. See
ResolvedPat for more information.
Trait Implementations§
impl Copy for PeelKind
impl Eq for PeelKind
impl StructuralPartialEq for PeelKind
Auto Trait Implementations§
impl Freeze for PeelKind
impl RefUnwindSafe for PeelKind
impl Send for PeelKind
impl Sync for PeelKind
impl Unpin for PeelKind
impl UnsafeUnpin for PeelKind
impl UnwindSafe for PeelKind
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T, R> CollectAndApply<T, R> for T
impl<T, R> CollectAndApply<T, R> for T
§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
Compare self to
key and return true if they are equal.§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
Checks if this value is equivalent to the given key. Read more
§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
Checks if this value is equivalent to the given key. Read more
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> 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> ⓘ
Converts
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> ⓘ
Converts
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 more