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
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§
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
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for AutorefOrPtrAdjustment
impl Debug for AutorefOrPtrAdjustment
source§impl PartialEq<AutorefOrPtrAdjustment> for AutorefOrPtrAdjustment
impl PartialEq<AutorefOrPtrAdjustment> for AutorefOrPtrAdjustment
source§fn eq(&self, other: &AutorefOrPtrAdjustment) -> bool
fn eq(&self, other: &AutorefOrPtrAdjustment) -> bool
self
and other
values to be equal, and is used
by ==
.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§
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
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