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 fromT
to&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
Fields
mutbl: Mutability
unsize: bool
Indicates that the source expression should be “unsized” to a target type. This is special-cased for just arrays unsizing to slices.
Receiver has type T
, add &
or &mut
(it T
is mut
), and maybe also “unsize” it.
Unsizing is used to convert a [T; N]
to [T]
, which only makes sense when autorefing.
ToConstPtr
Receiver has type *mut T
, convert to *const T
Implementations
sourceimpl AutorefOrPtrAdjustment
impl AutorefOrPtrAdjustment
fn get_unsize(&self) -> bool
Trait Implementations
sourceimpl Clone for AutorefOrPtrAdjustment
impl Clone for AutorefOrPtrAdjustment
sourcefn clone(&self) -> AutorefOrPtrAdjustment
fn clone(&self) -> AutorefOrPtrAdjustment
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresourceimpl Debug for AutorefOrPtrAdjustment
impl Debug for AutorefOrPtrAdjustment
sourceimpl PartialEq<AutorefOrPtrAdjustment> for AutorefOrPtrAdjustment
impl PartialEq<AutorefOrPtrAdjustment> for AutorefOrPtrAdjustment
sourcefn eq(&self, other: &AutorefOrPtrAdjustment) -> bool
fn eq(&self, other: &AutorefOrPtrAdjustment) -> bool
impl Copy for AutorefOrPtrAdjustment
impl StructuralPartialEq for AutorefOrPtrAdjustment
Auto Trait Implementations
impl RefUnwindSafe for AutorefOrPtrAdjustment
impl Send for AutorefOrPtrAdjustment
impl Sync for AutorefOrPtrAdjustment
impl Unpin for AutorefOrPtrAdjustment
impl UnwindSafe for AutorefOrPtrAdjustment
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<'a, T> Captures<'a> for Twhere
T: ?Sized,
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: 2 bytes
Size for each variant:
Autoref
: 2 bytesToConstPtr
: 0 bytes