#[repr(C)]pub struct DynRef<'a, Vt>where
Vt: 'static,{ /* private fields */ }
Expand description
A stable &'a dyn Traits
Implementations§
source§impl<'a, Vt> DynRef<'a, Vt>where
Vt: 'static,
impl<'a, Vt> DynRef<'a, Vt>where
Vt: 'static,
sourcepub const fn has_optimal_layout() -> bool
pub const fn has_optimal_layout() -> bool
Returns true if the layout for DynRef
is smaller or equal to that Rust would have generated for it.
source§impl<'a, Vt> DynRef<'a, Vt>where
Vt: Copy + 'a,
impl<'a, Vt> DynRef<'a, Vt>where
Vt: Copy + 'a,
sourcepub fn into_super<Super>(self) -> Superwhere
DynRef<'a, Vt>: IntoSuperTrait<Super>,
pub fn into_super<Super>(self) -> Superwhere
DynRef<'a, Vt>: IntoSuperTrait<Super>,
Allows casting a dyn A + B
into dyn A
.
Note that you can only remove the outermost (rightmost in dyn syntax) trait at a time,
except Send
and Sync
that may both be kept, or both be removed.
sourcepub unsafe fn downcast<T>(&self) -> Option<&T>where
Vt: PartialEq + IConstConstructor<'a, T>,
pub unsafe fn downcast<T>(&self) -> Option<&T>where
Vt: PartialEq + IConstConstructor<'a, T>,
Downcasts the reference based on vtable equality.
This implies that this downcast will always yield None
when attempting to downcast
values constructed accross an FFI.
§Safety
This may have false positives if all of the following applies:
self
was built from&U
, within the same FFI-boundary,T
andU
have identical implementations for all methods of the vtable,- the compiler chose to merge these implementations, making
T
andU
share their function pointers.
While all of these factors aligning is unlikely, you should be aware of this if you
plan on using methods of T
that wouldn’t be valid for U
.
sourcepub fn stable_downcast<T, Path>(&self) -> Option<&T>
pub fn stable_downcast<T, Path>(&self) -> Option<&T>
Downcasts the reference based on its reflection report.
Trait Implementations§
source§impl<StabbyVtProvider, StabbyTransitiveDerefN> AnyDyn<StabbyTransitiveDerefN> for DynRef<'_, StabbyVtProvider>
impl<StabbyVtProvider, StabbyTransitiveDerefN> AnyDyn<StabbyTransitiveDerefN> for DynRef<'_, StabbyVtProvider>
source§impl<StabbyVtProvider, StabbyTransitiveDerefN, O> Call0Dyn<StabbyTransitiveDerefN, O> for DynRef<'_, StabbyVtProvider>
impl<StabbyVtProvider, StabbyTransitiveDerefN, O> Call0Dyn<StabbyTransitiveDerefN, O> for DynRef<'_, StabbyVtProvider>
source§impl<StabbyVtProvider, StabbyTransitiveDerefN, O, I0> Call1Dyn<StabbyTransitiveDerefN, O, I0> for DynRef<'_, StabbyVtProvider>
impl<StabbyVtProvider, StabbyTransitiveDerefN, O, I0> Call1Dyn<StabbyTransitiveDerefN, O, I0> for DynRef<'_, StabbyVtProvider>
source§impl<StabbyVtProvider, StabbyTransitiveDerefN, O, I0, I1> Call2Dyn<StabbyTransitiveDerefN, O, I0, I1> for DynRef<'_, StabbyVtProvider>where
StabbyVtProvider: TransitiveDeref<StabbyVtableCall2<O, I0, I1>, StabbyTransitiveDerefN> + Copy,
impl<StabbyVtProvider, StabbyTransitiveDerefN, O, I0, I1> Call2Dyn<StabbyTransitiveDerefN, O, I0, I1> for DynRef<'_, StabbyVtProvider>where
StabbyVtProvider: TransitiveDeref<StabbyVtableCall2<O, I0, I1>, StabbyTransitiveDerefN> + Copy,
source§impl<StabbyVtProvider, StabbyTransitiveDerefN, O, I0, I1, I2> Call3Dyn<StabbyTransitiveDerefN, O, I0, I1, I2> for DynRef<'_, StabbyVtProvider>where
StabbyVtProvider: TransitiveDeref<StabbyVtableCall3<O, I0, I1, I2>, StabbyTransitiveDerefN> + Copy,
impl<StabbyVtProvider, StabbyTransitiveDerefN, O, I0, I1, I2> Call3Dyn<StabbyTransitiveDerefN, O, I0, I1, I2> for DynRef<'_, StabbyVtProvider>where
StabbyVtProvider: TransitiveDeref<StabbyVtableCall3<O, I0, I1, I2>, StabbyTransitiveDerefN> + Copy,
source§impl<StabbyVtProvider, StabbyTransitiveDerefN, O, I0, I1, I2, I3> Call4Dyn<StabbyTransitiveDerefN, O, I0, I1, I2, I3> for DynRef<'_, StabbyVtProvider>where
StabbyVtProvider: TransitiveDeref<StabbyVtableCall4<O, I0, I1, I2, I3>, StabbyTransitiveDerefN> + Copy,
impl<StabbyVtProvider, StabbyTransitiveDerefN, O, I0, I1, I2, I3> Call4Dyn<StabbyTransitiveDerefN, O, I0, I1, I2, I3> for DynRef<'_, StabbyVtProvider>where
StabbyVtProvider: TransitiveDeref<StabbyVtableCall4<O, I0, I1, I2, I3>, StabbyTransitiveDerefN> + Copy,
source§impl<StabbyVtProvider, StabbyTransitiveDerefN, O, I0, I1, I2, I3, I4> Call5Dyn<StabbyTransitiveDerefN, O, I0, I1, I2, I3, I4> for DynRef<'_, StabbyVtProvider>where
StabbyVtProvider: TransitiveDeref<StabbyVtableCall5<O, I0, I1, I2, I3, I4>, StabbyTransitiveDerefN> + Copy,
impl<StabbyVtProvider, StabbyTransitiveDerefN, O, I0, I1, I2, I3, I4> Call5Dyn<StabbyTransitiveDerefN, O, I0, I1, I2, I3, I4> for DynRef<'_, StabbyVtProvider>where
StabbyVtProvider: TransitiveDeref<StabbyVtableCall5<O, I0, I1, I2, I3, I4>, StabbyTransitiveDerefN> + Copy,
source§impl<StabbyVtProvider, StabbyTransitiveDerefN, O, I0, I1, I2, I3, I4, I5> Call6Dyn<StabbyTransitiveDerefN, O, I0, I1, I2, I3, I4, I5> for DynRef<'_, StabbyVtProvider>where
StabbyVtProvider: TransitiveDeref<StabbyVtableCall6<O, I0, I1, I2, I3, I4, I5>, StabbyTransitiveDerefN> + Copy,
impl<StabbyVtProvider, StabbyTransitiveDerefN, O, I0, I1, I2, I3, I4, I5> Call6Dyn<StabbyTransitiveDerefN, O, I0, I1, I2, I3, I4, I5> for DynRef<'_, StabbyVtProvider>where
StabbyVtProvider: TransitiveDeref<StabbyVtableCall6<O, I0, I1, I2, I3, I4, I5>, StabbyTransitiveDerefN> + Copy,
source§impl<StabbyVtProvider, StabbyTransitiveDerefN, O, I0, I1, I2, I3, I4, I5, I6> Call7Dyn<StabbyTransitiveDerefN, O, I0, I1, I2, I3, I4, I5, I6> for DynRef<'_, StabbyVtProvider>where
StabbyVtProvider: TransitiveDeref<StabbyVtableCall7<O, I0, I1, I2, I3, I4, I5, I6>, StabbyTransitiveDerefN> + Copy,
impl<StabbyVtProvider, StabbyTransitiveDerefN, O, I0, I1, I2, I3, I4, I5, I6> Call7Dyn<StabbyTransitiveDerefN, O, I0, I1, I2, I3, I4, I5, I6> for DynRef<'_, StabbyVtProvider>where
StabbyVtProvider: TransitiveDeref<StabbyVtableCall7<O, I0, I1, I2, I3, I4, I5, I6>, StabbyTransitiveDerefN> + Copy,
source§impl<StabbyVtProvider, StabbyTransitiveDerefN, O, I0, I1, I2, I3, I4, I5, I6, I7> Call8Dyn<StabbyTransitiveDerefN, O, I0, I1, I2, I3, I4, I5, I6, I7> for DynRef<'_, StabbyVtProvider>where
StabbyVtProvider: TransitiveDeref<StabbyVtableCall8<O, I0, I1, I2, I3, I4, I5, I6, I7>, StabbyTransitiveDerefN> + Copy,
impl<StabbyVtProvider, StabbyTransitiveDerefN, O, I0, I1, I2, I3, I4, I5, I6, I7> Call8Dyn<StabbyTransitiveDerefN, O, I0, I1, I2, I3, I4, I5, I6, I7> for DynRef<'_, StabbyVtProvider>where
StabbyVtProvider: TransitiveDeref<StabbyVtableCall8<O, I0, I1, I2, I3, I4, I5, I6, I7>, StabbyTransitiveDerefN> + Copy,
source§impl<StabbyVtProvider, StabbyTransitiveDerefN, O, I0, I1, I2, I3, I4, I5, I6, I7, I8> Call9Dyn<StabbyTransitiveDerefN, O, I0, I1, I2, I3, I4, I5, I6, I7, I8> for DynRef<'_, StabbyVtProvider>where
StabbyVtProvider: TransitiveDeref<StabbyVtableCall9<O, I0, I1, I2, I3, I4, I5, I6, I7, I8>, StabbyTransitiveDerefN> + Copy,
impl<StabbyVtProvider, StabbyTransitiveDerefN, O, I0, I1, I2, I3, I4, I5, I6, I7, I8> Call9Dyn<StabbyTransitiveDerefN, O, I0, I1, I2, I3, I4, I5, I6, I7, I8> for DynRef<'_, StabbyVtProvider>where
StabbyVtProvider: TransitiveDeref<StabbyVtableCall9<O, I0, I1, I2, I3, I4, I5, I6, I7, I8>, StabbyTransitiveDerefN> + Copy,
source§impl<StabbyVtProvider, StabbyTransitiveDerefN, _stabby_unselfed_0> FutureDyn<StabbyTransitiveDerefN, _stabby_unselfed_0> for DynRef<'_, StabbyVtProvider>where
StabbyVtProvider: TransitiveDeref<StabbyVtableFuture<_stabby_unselfed_0>, StabbyTransitiveDerefN> + Copy,
_stabby_unselfed_0: IDeterminantProvider<()>,
impl<StabbyVtProvider, StabbyTransitiveDerefN, _stabby_unselfed_0> FutureDyn<StabbyTransitiveDerefN, _stabby_unselfed_0> for DynRef<'_, StabbyVtProvider>where
StabbyVtProvider: TransitiveDeref<StabbyVtableFuture<_stabby_unselfed_0>, StabbyTransitiveDerefN> + Copy,
_stabby_unselfed_0: IDeterminantProvider<()>,
source§impl<'a, Vt> IStable for DynRef<'a, Vt>
impl<'a, Vt> IStable for DynRef<'a, Vt>
§type ForbiddenValues = <Struct<FieldPair<FieldPair<&'a (), &'a Vt>, PhantomData<*mut ()>>> as IStable>::ForbiddenValues
type ForbiddenValues = <Struct<FieldPair<FieldPair<&'a (), &'a Vt>, PhantomData<*mut ()>>> as IStable>::ForbiddenValues
The values that the annotated type cannot occupy.
§type UnusedBits = <Struct<FieldPair<FieldPair<&'a (), &'a Vt>, PhantomData<*mut ()>>> as IStable>::UnusedBits
type UnusedBits = <Struct<FieldPair<FieldPair<&'a (), &'a Vt>, PhantomData<*mut ()>>> as IStable>::UnusedBits
The padding bits in the annotated types
§type Size = <Struct<FieldPair<FieldPair<&'a (), &'a Vt>, PhantomData<*mut ()>>> as IStable>::Size
type Size = <Struct<FieldPair<FieldPair<&'a (), &'a Vt>, PhantomData<*mut ()>>> as IStable>::Size
The size of the annotated type in bytes.
§type Align = <Struct<FieldPair<FieldPair<&'a (), &'a Vt>, PhantomData<*mut ()>>> as IStable>::Align
type Align = <Struct<FieldPair<FieldPair<&'a (), &'a Vt>, PhantomData<*mut ()>>> as IStable>::Align
The alignment of the annotated type in bytes.
§type HasExactlyOneNiche = <Struct<FieldPair<FieldPair<&'a (), &'a Vt>, PhantomData<*mut ()>>> as IStable>::HasExactlyOneNiche
type HasExactlyOneNiche = <Struct<FieldPair<FieldPair<&'a (), &'a Vt>, PhantomData<*mut ()>>> as IStable>::HasExactlyOneNiche
Allows the detection of whether or not
core::option::Option
s are stable: Read more§type ContainsIndirections = <Struct<FieldPair<FieldPair<&'a (), &'a Vt>, PhantomData<*mut ()>>> as IStable>::ContainsIndirections
type ContainsIndirections = <Struct<FieldPair<FieldPair<&'a (), &'a Vt>, PhantomData<*mut ()>>> as IStable>::ContainsIndirections
Whether or not the type contains indirections (pointers, indices in independent data-structures…)
source§const REPORT: &'static TypeReport = _
const REPORT: &'static TypeReport = _
A compile-time generated report of the fields of the type, allowing for compatibility inspection.
source§const ID: u64 = _
const ID: u64 = _
A stable (and ideally unique) identifier for the type. Often generated using
crate::report::gen_id
, but can be manually set.source§impl<'a, Head, Tail> IntoSuperTrait<DynRef<'a, Tail>> for DynRef<'a, VTable<Head, Tail>>where
Tail: HasDropVt + 'static,
impl<'a, Head, Tail> IntoSuperTrait<DynRef<'a, Tail>> for DynRef<'a, VTable<Head, Tail>>where
Tail: HasDropVt + 'static,
source§impl<'a, Head, Tail> IntoSuperTrait<DynRef<'a, Tail>> for DynRef<'a, VtSend<VTable<Head, Tail>>>where
Tail: HasDropVt + 'static,
impl<'a, Head, Tail> IntoSuperTrait<DynRef<'a, Tail>> for DynRef<'a, VtSend<VTable<Head, Tail>>>where
Tail: HasDropVt + 'static,
source§impl<'a, Head, Tail> IntoSuperTrait<DynRef<'a, Tail>> for DynRef<'a, VtSend<VtSync<VTable<Head, Tail>>>>where
Tail: HasDropVt + 'static,
impl<'a, Head, Tail> IntoSuperTrait<DynRef<'a, Tail>> for DynRef<'a, VtSend<VtSync<VTable<Head, Tail>>>>where
Tail: HasDropVt + 'static,
source§impl<'a, Head, Tail> IntoSuperTrait<DynRef<'a, Tail>> for DynRef<'a, VtSync<VTable<Head, Tail>>>where
Tail: HasDropVt + 'static,
impl<'a, Head, Tail> IntoSuperTrait<DynRef<'a, Tail>> for DynRef<'a, VtSync<VTable<Head, Tail>>>where
Tail: HasDropVt + 'static,
source§impl<'a, Head, Tail> IntoSuperTrait<DynRef<'a, Tail>> for DynRef<'a, VtSync<VtSend<VTable<Head, Tail>>>>where
Tail: HasDropVt + 'static,
impl<'a, Head, Tail> IntoSuperTrait<DynRef<'a, Tail>> for DynRef<'a, VtSync<VtSend<VTable<Head, Tail>>>>where
Tail: HasDropVt + 'static,
source§impl<'a, Vt> IntoSuperTrait<DynRef<'a, Vt>> for DynRef<'a, VtSend<Vt>>where
Vt: HasDropVt + 'static,
impl<'a, Vt> IntoSuperTrait<DynRef<'a, Vt>> for DynRef<'a, VtSend<Vt>>where
Vt: HasDropVt + 'static,
source§impl<'a, Vt> IntoSuperTrait<DynRef<'a, Vt>> for DynRef<'a, VtSend<VtSync<Vt>>>where
Vt: HasDropVt + 'static,
impl<'a, Vt> IntoSuperTrait<DynRef<'a, Vt>> for DynRef<'a, VtSend<VtSync<Vt>>>where
Vt: HasDropVt + 'static,
source§impl<'a, Vt> IntoSuperTrait<DynRef<'a, Vt>> for DynRef<'a, VtSync<Vt>>where
Vt: HasDropVt + 'static,
impl<'a, Vt> IntoSuperTrait<DynRef<'a, Vt>> for DynRef<'a, VtSync<Vt>>where
Vt: HasDropVt + 'static,
source§impl<'a, Vt> IntoSuperTrait<DynRef<'a, Vt>> for DynRef<'a, VtSync<VtSend<Vt>>>where
Vt: HasDropVt + 'static,
impl<'a, Vt> IntoSuperTrait<DynRef<'a, Vt>> for DynRef<'a, VtSync<VtSend<Vt>>>where
Vt: HasDropVt + 'static,
source§impl<'a, Head, Tail> IntoSuperTrait<DynRef<'a, VtSend<Tail>>> for DynRef<'a, VtSend<VTable<Head, Tail>>>where
Tail: HasDropVt + 'static,
impl<'a, Head, Tail> IntoSuperTrait<DynRef<'a, VtSend<Tail>>> for DynRef<'a, VtSend<VTable<Head, Tail>>>where
Tail: HasDropVt + 'static,
source§impl<'a, Vt> IntoSuperTrait<DynRef<'a, VtSend<Vt>>> for DynRef<'a, VtSend<VtSync<Vt>>>where
Vt: HasDropVt + 'static,
impl<'a, Vt> IntoSuperTrait<DynRef<'a, VtSend<Vt>>> for DynRef<'a, VtSend<VtSync<Vt>>>where
Vt: HasDropVt + 'static,
source§impl<'a, Head, Tail> IntoSuperTrait<DynRef<'a, VtSend<VtSync<Tail>>>> for DynRef<'a, VtSend<VtSync<VTable<Head, Tail>>>>where
Tail: HasDropVt + 'static,
impl<'a, Head, Tail> IntoSuperTrait<DynRef<'a, VtSend<VtSync<Tail>>>> for DynRef<'a, VtSend<VtSync<VTable<Head, Tail>>>>where
Tail: HasDropVt + 'static,
source§impl<'a, Head, Tail> IntoSuperTrait<DynRef<'a, VtSync<Tail>>> for DynRef<'a, VtSync<VTable<Head, Tail>>>where
Tail: HasDropVt + 'static,
impl<'a, Head, Tail> IntoSuperTrait<DynRef<'a, VtSync<Tail>>> for DynRef<'a, VtSync<VTable<Head, Tail>>>where
Tail: HasDropVt + 'static,
source§impl<'a, Vt> IntoSuperTrait<DynRef<'a, VtSync<Vt>>> for DynRef<'a, VtSync<VtSend<Vt>>>where
Vt: HasDropVt + 'static,
impl<'a, Vt> IntoSuperTrait<DynRef<'a, VtSync<Vt>>> for DynRef<'a, VtSync<VtSend<Vt>>>where
Vt: HasDropVt + 'static,
source§impl<'a, Head, Tail> IntoSuperTrait<DynRef<'a, VtSync<VtSend<Tail>>>> for DynRef<'a, VtSync<VtSend<VTable<Head, Tail>>>>where
Tail: HasDropVt + 'static,
impl<'a, Head, Tail> IntoSuperTrait<DynRef<'a, VtSync<VtSend<Tail>>>> for DynRef<'a, VtSync<VtSend<VTable<Head, Tail>>>>where
Tail: HasDropVt + 'static,
source§impl<StabbyVtProvider, StabbyTransitiveDerefN, _stabby_unselfed_0> IteratorDyn<StabbyTransitiveDerefN, _stabby_unselfed_0> for DynRef<'_, StabbyVtProvider>where
StabbyVtProvider: TransitiveDeref<StabbyVtableIterator<_stabby_unselfed_0>, StabbyTransitiveDerefN> + Copy,
_stabby_unselfed_0: IDeterminantProvider<()>,
impl<StabbyVtProvider, StabbyTransitiveDerefN, _stabby_unselfed_0> IteratorDyn<StabbyTransitiveDerefN, _stabby_unselfed_0> for DynRef<'_, StabbyVtProvider>where
StabbyVtProvider: TransitiveDeref<StabbyVtableIterator<_stabby_unselfed_0>, StabbyTransitiveDerefN> + Copy,
_stabby_unselfed_0: IDeterminantProvider<()>,
impl<StabbyVtProvider, StabbyTransitiveDerefN, O> CallMut0Dyn<StabbyTransitiveDerefN, O> for DynRef<'_, StabbyVtProvider>
impl<StabbyVtProvider, StabbyTransitiveDerefN, O, I0> CallMut1Dyn<StabbyTransitiveDerefN, O, I0> for DynRef<'_, StabbyVtProvider>where
StabbyVtProvider: TransitiveDeref<StabbyVtableCallMut1<O, I0>, StabbyTransitiveDerefN> + Copy,
impl<StabbyVtProvider, StabbyTransitiveDerefN, O, I0, I1> CallMut2Dyn<StabbyTransitiveDerefN, O, I0, I1> for DynRef<'_, StabbyVtProvider>where
StabbyVtProvider: TransitiveDeref<StabbyVtableCallMut2<O, I0, I1>, StabbyTransitiveDerefN> + Copy,
impl<StabbyVtProvider, StabbyTransitiveDerefN, O, I0, I1, I2> CallMut3Dyn<StabbyTransitiveDerefN, O, I0, I1, I2> for DynRef<'_, StabbyVtProvider>where
StabbyVtProvider: TransitiveDeref<StabbyVtableCallMut3<O, I0, I1, I2>, StabbyTransitiveDerefN> + Copy,
impl<StabbyVtProvider, StabbyTransitiveDerefN, O, I0, I1, I2, I3> CallMut4Dyn<StabbyTransitiveDerefN, O, I0, I1, I2, I3> for DynRef<'_, StabbyVtProvider>where
StabbyVtProvider: TransitiveDeref<StabbyVtableCallMut4<O, I0, I1, I2, I3>, StabbyTransitiveDerefN> + Copy,
impl<StabbyVtProvider, StabbyTransitiveDerefN, O, I0, I1, I2, I3, I4> CallMut5Dyn<StabbyTransitiveDerefN, O, I0, I1, I2, I3, I4> for DynRef<'_, StabbyVtProvider>where
StabbyVtProvider: TransitiveDeref<StabbyVtableCallMut5<O, I0, I1, I2, I3, I4>, StabbyTransitiveDerefN> + Copy,
impl<StabbyVtProvider, StabbyTransitiveDerefN, O, I0, I1, I2, I3, I4, I5> CallMut6Dyn<StabbyTransitiveDerefN, O, I0, I1, I2, I3, I4, I5> for DynRef<'_, StabbyVtProvider>where
StabbyVtProvider: TransitiveDeref<StabbyVtableCallMut6<O, I0, I1, I2, I3, I4, I5>, StabbyTransitiveDerefN> + Copy,
impl<StabbyVtProvider, StabbyTransitiveDerefN, O, I0, I1, I2, I3, I4, I5, I6> CallMut7Dyn<StabbyTransitiveDerefN, O, I0, I1, I2, I3, I4, I5, I6> for DynRef<'_, StabbyVtProvider>where
StabbyVtProvider: TransitiveDeref<StabbyVtableCallMut7<O, I0, I1, I2, I3, I4, I5, I6>, StabbyTransitiveDerefN> + Copy,
impl<StabbyVtProvider, StabbyTransitiveDerefN, O, I0, I1, I2, I3, I4, I5, I6, I7> CallMut8Dyn<StabbyTransitiveDerefN, O, I0, I1, I2, I3, I4, I5, I6, I7> for DynRef<'_, StabbyVtProvider>where
StabbyVtProvider: TransitiveDeref<StabbyVtableCallMut8<O, I0, I1, I2, I3, I4, I5, I6, I7>, StabbyTransitiveDerefN> + Copy,
impl<StabbyVtProvider, StabbyTransitiveDerefN, O, I0, I1, I2, I3, I4, I5, I6, I7, I8> CallMut9Dyn<StabbyTransitiveDerefN, O, I0, I1, I2, I3, I4, I5, I6, I7, I8> for DynRef<'_, StabbyVtProvider>where
StabbyVtProvider: TransitiveDeref<StabbyVtableCallMut9<O, I0, I1, I2, I3, I4, I5, I6, I7, I8>, StabbyTransitiveDerefN> + Copy,
impl<'a, Vt> Copy for DynRef<'a, Vt>where
Vt: Copy + 'static,
impl<StabbyVtProvider, StabbyTransitiveDerefN> IStableAllocDyn<StabbyTransitiveDerefN> for DynRef<'_, StabbyVtProvider>
impl<'a, Vt> Send for DynRef<'a, Vt>where
Vt: HasSendVt,
impl<'a, Vt> Sync for DynRef<'a, Vt>where
Vt: HasSyncVt,
Auto Trait Implementations§
impl<'a, Vt> Freeze for DynRef<'a, Vt>
impl<'a, Vt> RefUnwindSafe for DynRef<'a, Vt>where
Vt: RefUnwindSafe,
impl<'a, Vt> Unpin for DynRef<'a, Vt>
impl<'a, Vt> UnwindSafe for DynRef<'a, Vt>where
Vt: RefUnwindSafe,
Blanket Implementations§
source§impl<Source> AccessAs for Source
impl<Source> AccessAs for Source
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