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
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.
Fields
mutbl: Mutability
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 for AutorefOrPtrAdjustment
impl PartialEq 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 DynSend for AutorefOrPtrAdjustment
impl DynSync for AutorefOrPtrAdjustment
impl Freeze for AutorefOrPtrAdjustment
impl RefUnwindSafe for AutorefOrPtrAdjustment
impl Send for AutorefOrPtrAdjustment
impl Sync for AutorefOrPtrAdjustment
impl Unpin for AutorefOrPtrAdjustment
impl UnwindSafe for AutorefOrPtrAdjustment
Blanket Implementations§
source§impl<'tcx, T> ArenaAllocatable<'tcx, IsCopy> for Twhere
T: Copy,
impl<'tcx, T> ArenaAllocatable<'tcx, IsCopy> for Twhere
T: Copy,
fn allocate_on<'a>(self, arena: &'a Arena<'tcx>) -> &'a mut T
fn allocate_from_iter<'a>( arena: &'a Arena<'tcx>, iter: impl IntoIterator<Item = T> ) -> &'a mut [T]
source§impl<'tcx, T> ArenaAllocatable<'tcx, IsCopy> for Twhere
T: Copy,
impl<'tcx, T> ArenaAllocatable<'tcx, IsCopy> for Twhere
T: Copy,
fn allocate_on<'a>(self, arena: &'a Arena<'tcx>) -> &'a mut T
fn allocate_from_iter<'a>( arena: &'a Arena<'tcx>, iter: impl IntoIterator<Item = T> ) -> &'a mut [T]
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
source§impl<T, R> CollectAndApply<T, R> for T
impl<T, R> CollectAndApply<T, R> for T
source§impl<T> Filterable for T
impl<T> Filterable for T
source§fn filterable(
self,
filter_name: &'static str
) -> RequestFilterDataProvider<T, fn(_: DataRequest<'_>) -> bool>
fn filterable( self, filter_name: &'static str ) -> RequestFilterDataProvider<T, fn(_: DataRequest<'_>) -> bool>
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<P> IntoQueryParam<P> for P
impl<P> IntoQueryParam<P> for P
fn into_query_param(self) -> P
source§impl<T> MaybeResult<T> for T
impl<T> MaybeResult<T> for T
source§impl<T> Pointable for T
impl<T> Pointable for T
source§impl<'tcx, T> ToPredicate<'tcx, T> for T
impl<'tcx, T> ToPredicate<'tcx, T> for T
fn to_predicate(self, _tcx: TyCtxt<'tcx>) -> T
source§impl<Tcx, T> Value<Tcx> for Twhere
Tcx: DepContext,
impl<Tcx, T> Value<Tcx> for Twhere
Tcx: DepContext,
default fn from_cycle_error( tcx: Tcx, cycle_error: &CycleError, _guar: ErrorGuaranteed ) -> T
source§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
source§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
source§fn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
impl<'a, T> Captures<'a> for Twhere
T: ?Sized,
impl<T> ErasedDestructor for Twhere
T: 'static,
impl<T> MaybeSendSync for 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