pub enum AutorefOrPtrAdjustment {
Autoref {
mutbl: Mutability,
unsize: bool,
},
ToConstPtr,
}Expand description
When adjusting a receiver we often want to do one of
- Add a
&(or&mut), converting the receiver fromTto&T(or&mut T) - If the receiver has type
*mut T, convert it to*const T
This type tells us which one to do.
Note that in principle we could do both at the same time. For example, when the receiver has
type T, we could autoref it to &T, then convert to *const T. Or, when it has type *mut T, we could convert it to *const T, then autoref to &*const T. However, currently we do
(at most) one of these. Either the receiver has type T and we convert it to &T (or with
mut), or it has type *mut T and we convert it to *const T.
Variants§
Autoref
Receiver has type T, add & or &mut (if T is mut), and maybe also “unsize” it.
Unsizing is used to convert a [T; N] to [T], which only makes sense when autorefing.
Fields
§
mutbl: MutabilityToConstPtr
Receiver has type *mut T, convert to *const T
Implementations§
Source§impl AutorefOrPtrAdjustment
impl AutorefOrPtrAdjustment
fn get_unsize(&self) -> bool
Trait Implementations§
Source§impl Clone for AutorefOrPtrAdjustment
impl Clone for AutorefOrPtrAdjustment
Source§fn clone(&self) -> AutorefOrPtrAdjustment
fn clone(&self) -> AutorefOrPtrAdjustment
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · 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 AutorefOrPtrAdjustment
impl Debug for AutorefOrPtrAdjustment
Source§impl PartialEq for AutorefOrPtrAdjustment
impl PartialEq for AutorefOrPtrAdjustment
Source§fn eq(&self, other: &AutorefOrPtrAdjustment) -> bool
fn eq(&self, other: &AutorefOrPtrAdjustment) -> bool
Tests for
self and other values to be equal, and is used by ==.impl Copy for AutorefOrPtrAdjustment
impl StructuralPartialEq for AutorefOrPtrAdjustment
Auto Trait Implementations§
impl Freeze for AutorefOrPtrAdjustment
impl RefUnwindSafe for AutorefOrPtrAdjustment
impl Send for AutorefOrPtrAdjustment
impl Sync for AutorefOrPtrAdjustment
impl Unpin for AutorefOrPtrAdjustment
impl UnsafeUnpin for AutorefOrPtrAdjustment
impl UnwindSafe for AutorefOrPtrAdjustment
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<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