Enum hir_def::hir::BindingAnnotation
source · pub enum BindingAnnotation {
Unannotated,
Mutable,
Ref,
RefMut,
}
Expand description
Explicit binding annotations given in the HIR for a binding. Note that this is not the final binding mode that we infer after type inference.
Variants§
Unannotated
No binding annotation given: this means that the final binding mode
will depend on whether we have skipped through a &
reference
when matching. For example, the x
in Some(x)
will have binding
mode None
; if you do let Some(x) = &Some(22)
, it will
ultimately be inferred to be by-reference.
Mutable
Annotated with mut x
– could be either ref or not, similar to None
.
Ref
Annotated as ref
, like ref x
RefMut
Annotated as ref mut x
.
Implementations§
Trait Implementations§
source§impl Clone for BindingAnnotation
impl Clone for BindingAnnotation
source§fn clone(&self) -> BindingAnnotation
fn clone(&self) -> BindingAnnotation
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl Debug for BindingAnnotation
impl Debug for BindingAnnotation
source§impl PartialEq for BindingAnnotation
impl PartialEq for BindingAnnotation
impl Copy for BindingAnnotation
impl Eq for BindingAnnotation
impl StructuralPartialEq for BindingAnnotation
Auto Trait Implementations§
impl Freeze for BindingAnnotation
impl RefUnwindSafe for BindingAnnotation
impl Send for BindingAnnotation
impl Sync for BindingAnnotation
impl Unpin for BindingAnnotation
impl UnwindSafe for BindingAnnotation
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,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)§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
Compare self to
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>
§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