#[repr(C)]pub struct Dyn<'a, P, Vt>{ /* private fields */ }
Expand description
A stable trait object (or a stable &mut dyn
)
Implementations§
source§impl<'a, P, Vt> Dyn<'a, P, Vt>
impl<'a, P, Vt> Dyn<'a, P, Vt>
sourcepub const fn has_optimal_layout() -> bool
pub const fn has_optimal_layout() -> bool
Returns true if the layout for Dyn
is smaller or equal to that Rust would have generated for it.
source§impl<'a, P, Vt> Dyn<'a, P, Vt>
impl<'a, P, Vt> Dyn<'a, P, Vt>
sourcepub fn as_mut(&mut self) -> Dyn<'_, &mut (), Vt>where
P: IPtrMut,
pub fn as_mut(&mut self) -> Dyn<'_, &mut (), Vt>where
P: IPtrMut,
Borrow into an ABI-stable &mut dyn Traits
sourcepub fn try_as_mut(&mut self) -> Option<Dyn<'_, &mut (), Vt>>where
P: IPtrTryAsMut,
pub fn try_as_mut(&mut self) -> Option<Dyn<'_, &mut (), Vt>>where
P: IPtrTryAsMut,
Attempt to borrow into an ABI-stable &mut dyn Traits
sourcepub fn into_super<Super>(self) -> Superwhere
Dyn<'a, P, Vt>: IntoSuperTrait<Super>,
pub fn into_super<Super>(self) -> Superwhere
Dyn<'a, P, 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_ref<T>(&self) -> Option<&T>
pub unsafe fn downcast_ref<T>(&self) -> Option<&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.
Note that the compiler may chose to have multiple copies of the vtable, notably in optimized builds. This means that even within a same compile unit, this function may fail to downcast a value even if the type should have matched.
In general, you should prefer Self::stable_downcast_ref
§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_ref<T, Path>(&self) -> Option<&T>
pub fn stable_downcast_ref<T, Path>(&self) -> Option<&T>
Downcasts the reference based on its reflection report.
sourcepub unsafe fn downcast_mut<T>(&mut self) -> Option<&mut T>
pub unsafe fn downcast_mut<T>(&mut self) -> Option<&mut T>
Downcasts the mutable reference based on vtable equality.
This implies that this downcast will always yield None
when attempting to downcast
values constructed accross an FFI.
Note that the compiler may chose to have multiple copies of the vtable, notably in optimized builds. This means that even within a same compile unit, this function may fail to downcast a value even if the type should have matched.
In general, you should prefer Self::stable_downcast_mut
§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_mut<T, Path>(&mut self) -> Option<&mut T>where
T: IStable,
Vt: TransitiveDeref<StabbyVtableAny, Path> + IConstConstructor<'a, T>,
P: IPtrMut,
pub fn stable_downcast_mut<T, Path>(&mut self) -> Option<&mut T>where
T: IStable,
Vt: TransitiveDeref<StabbyVtableAny, Path> + IConstConstructor<'a, T>,
P: IPtrMut,
Downcasts the mutable reference based on its reflection report.
Trait Implementations§
source§impl<StabbyPtrProvider, StabbyVtProvider, StabbyTransitiveDerefN> AnyDyn<StabbyTransitiveDerefN> for Dyn<'_, StabbyPtrProvider, StabbyVtProvider>where
StabbyPtrProvider: IPtrOwned + IPtr,
StabbyVtProvider: HasDropVt + Copy + TransitiveDeref<StabbyVtableAny, StabbyTransitiveDerefN>,
impl<StabbyPtrProvider, StabbyVtProvider, StabbyTransitiveDerefN> AnyDyn<StabbyTransitiveDerefN> for Dyn<'_, StabbyPtrProvider, StabbyVtProvider>where
StabbyPtrProvider: IPtrOwned + IPtr,
StabbyVtProvider: HasDropVt + Copy + TransitiveDeref<StabbyVtableAny, StabbyTransitiveDerefN>,
source§impl<StabbyPtrProvider, StabbyVtProvider, StabbyTransitiveDerefN, O> Call0Dyn<StabbyTransitiveDerefN, O> for Dyn<'_, StabbyPtrProvider, StabbyVtProvider>where
StabbyPtrProvider: IPtrOwned + IPtr,
StabbyVtProvider: HasDropVt + Copy + TransitiveDeref<StabbyVtableCall0<O>, StabbyTransitiveDerefN>,
impl<StabbyPtrProvider, StabbyVtProvider, StabbyTransitiveDerefN, O> Call0Dyn<StabbyTransitiveDerefN, O> for Dyn<'_, StabbyPtrProvider, StabbyVtProvider>where
StabbyPtrProvider: IPtrOwned + IPtr,
StabbyVtProvider: HasDropVt + Copy + TransitiveDeref<StabbyVtableCall0<O>, StabbyTransitiveDerefN>,
source§impl<StabbyPtrProvider, StabbyVtProvider, StabbyTransitiveDerefN, O, I0> Call1Dyn<StabbyTransitiveDerefN, O, I0> for Dyn<'_, StabbyPtrProvider, StabbyVtProvider>where
StabbyPtrProvider: IPtrOwned + IPtr,
StabbyVtProvider: HasDropVt + Copy + TransitiveDeref<StabbyVtableCall1<O, I0>, StabbyTransitiveDerefN>,
impl<StabbyPtrProvider, StabbyVtProvider, StabbyTransitiveDerefN, O, I0> Call1Dyn<StabbyTransitiveDerefN, O, I0> for Dyn<'_, StabbyPtrProvider, StabbyVtProvider>where
StabbyPtrProvider: IPtrOwned + IPtr,
StabbyVtProvider: HasDropVt + Copy + TransitiveDeref<StabbyVtableCall1<O, I0>, StabbyTransitiveDerefN>,
source§impl<StabbyPtrProvider, StabbyVtProvider, StabbyTransitiveDerefN, O, I0, I1> Call2Dyn<StabbyTransitiveDerefN, O, I0, I1> for Dyn<'_, StabbyPtrProvider, StabbyVtProvider>where
StabbyPtrProvider: IPtrOwned + IPtr,
StabbyVtProvider: HasDropVt + Copy + TransitiveDeref<StabbyVtableCall2<O, I0, I1>, StabbyTransitiveDerefN>,
impl<StabbyPtrProvider, StabbyVtProvider, StabbyTransitiveDerefN, O, I0, I1> Call2Dyn<StabbyTransitiveDerefN, O, I0, I1> for Dyn<'_, StabbyPtrProvider, StabbyVtProvider>where
StabbyPtrProvider: IPtrOwned + IPtr,
StabbyVtProvider: HasDropVt + Copy + TransitiveDeref<StabbyVtableCall2<O, I0, I1>, StabbyTransitiveDerefN>,
source§impl<StabbyPtrProvider, StabbyVtProvider, StabbyTransitiveDerefN, O, I0, I1, I2> Call3Dyn<StabbyTransitiveDerefN, O, I0, I1, I2> for Dyn<'_, StabbyPtrProvider, StabbyVtProvider>where
StabbyPtrProvider: IPtrOwned + IPtr,
StabbyVtProvider: HasDropVt + Copy + TransitiveDeref<StabbyVtableCall3<O, I0, I1, I2>, StabbyTransitiveDerefN>,
impl<StabbyPtrProvider, StabbyVtProvider, StabbyTransitiveDerefN, O, I0, I1, I2> Call3Dyn<StabbyTransitiveDerefN, O, I0, I1, I2> for Dyn<'_, StabbyPtrProvider, StabbyVtProvider>where
StabbyPtrProvider: IPtrOwned + IPtr,
StabbyVtProvider: HasDropVt + Copy + TransitiveDeref<StabbyVtableCall3<O, I0, I1, I2>, StabbyTransitiveDerefN>,
source§impl<StabbyPtrProvider, StabbyVtProvider, StabbyTransitiveDerefN, O, I0, I1, I2, I3> Call4Dyn<StabbyTransitiveDerefN, O, I0, I1, I2, I3> for Dyn<'_, StabbyPtrProvider, StabbyVtProvider>where
StabbyPtrProvider: IPtrOwned + IPtr,
StabbyVtProvider: HasDropVt + Copy + TransitiveDeref<StabbyVtableCall4<O, I0, I1, I2, I3>, StabbyTransitiveDerefN>,
impl<StabbyPtrProvider, StabbyVtProvider, StabbyTransitiveDerefN, O, I0, I1, I2, I3> Call4Dyn<StabbyTransitiveDerefN, O, I0, I1, I2, I3> for Dyn<'_, StabbyPtrProvider, StabbyVtProvider>where
StabbyPtrProvider: IPtrOwned + IPtr,
StabbyVtProvider: HasDropVt + Copy + TransitiveDeref<StabbyVtableCall4<O, I0, I1, I2, I3>, StabbyTransitiveDerefN>,
source§impl<StabbyPtrProvider, StabbyVtProvider, StabbyTransitiveDerefN, O, I0, I1, I2, I3, I4> Call5Dyn<StabbyTransitiveDerefN, O, I0, I1, I2, I3, I4> for Dyn<'_, StabbyPtrProvider, StabbyVtProvider>where
StabbyPtrProvider: IPtrOwned + IPtr,
StabbyVtProvider: HasDropVt + Copy + TransitiveDeref<StabbyVtableCall5<O, I0, I1, I2, I3, I4>, StabbyTransitiveDerefN>,
impl<StabbyPtrProvider, StabbyVtProvider, StabbyTransitiveDerefN, O, I0, I1, I2, I3, I4> Call5Dyn<StabbyTransitiveDerefN, O, I0, I1, I2, I3, I4> for Dyn<'_, StabbyPtrProvider, StabbyVtProvider>where
StabbyPtrProvider: IPtrOwned + IPtr,
StabbyVtProvider: HasDropVt + Copy + TransitiveDeref<StabbyVtableCall5<O, I0, I1, I2, I3, I4>, StabbyTransitiveDerefN>,
source§impl<StabbyPtrProvider, StabbyVtProvider, StabbyTransitiveDerefN, O, I0, I1, I2, I3, I4, I5> Call6Dyn<StabbyTransitiveDerefN, O, I0, I1, I2, I3, I4, I5> for Dyn<'_, StabbyPtrProvider, StabbyVtProvider>where
StabbyPtrProvider: IPtrOwned + IPtr,
StabbyVtProvider: HasDropVt + Copy + TransitiveDeref<StabbyVtableCall6<O, I0, I1, I2, I3, I4, I5>, StabbyTransitiveDerefN>,
impl<StabbyPtrProvider, StabbyVtProvider, StabbyTransitiveDerefN, O, I0, I1, I2, I3, I4, I5> Call6Dyn<StabbyTransitiveDerefN, O, I0, I1, I2, I3, I4, I5> for Dyn<'_, StabbyPtrProvider, StabbyVtProvider>where
StabbyPtrProvider: IPtrOwned + IPtr,
StabbyVtProvider: HasDropVt + Copy + TransitiveDeref<StabbyVtableCall6<O, I0, I1, I2, I3, I4, I5>, StabbyTransitiveDerefN>,
source§impl<StabbyPtrProvider, StabbyVtProvider, StabbyTransitiveDerefN, O, I0, I1, I2, I3, I4, I5, I6> Call7Dyn<StabbyTransitiveDerefN, O, I0, I1, I2, I3, I4, I5, I6> for Dyn<'_, StabbyPtrProvider, StabbyVtProvider>where
StabbyPtrProvider: IPtrOwned + IPtr,
StabbyVtProvider: HasDropVt + Copy + TransitiveDeref<StabbyVtableCall7<O, I0, I1, I2, I3, I4, I5, I6>, StabbyTransitiveDerefN>,
impl<StabbyPtrProvider, StabbyVtProvider, StabbyTransitiveDerefN, O, I0, I1, I2, I3, I4, I5, I6> Call7Dyn<StabbyTransitiveDerefN, O, I0, I1, I2, I3, I4, I5, I6> for Dyn<'_, StabbyPtrProvider, StabbyVtProvider>where
StabbyPtrProvider: IPtrOwned + IPtr,
StabbyVtProvider: HasDropVt + Copy + TransitiveDeref<StabbyVtableCall7<O, I0, I1, I2, I3, I4, I5, I6>, StabbyTransitiveDerefN>,
source§impl<StabbyPtrProvider, StabbyVtProvider, StabbyTransitiveDerefN, O, I0, I1, I2, I3, I4, I5, I6, I7> Call8Dyn<StabbyTransitiveDerefN, O, I0, I1, I2, I3, I4, I5, I6, I7> for Dyn<'_, StabbyPtrProvider, StabbyVtProvider>where
StabbyPtrProvider: IPtrOwned + IPtr,
StabbyVtProvider: HasDropVt + Copy + TransitiveDeref<StabbyVtableCall8<O, I0, I1, I2, I3, I4, I5, I6, I7>, StabbyTransitiveDerefN>,
impl<StabbyPtrProvider, StabbyVtProvider, StabbyTransitiveDerefN, O, I0, I1, I2, I3, I4, I5, I6, I7> Call8Dyn<StabbyTransitiveDerefN, O, I0, I1, I2, I3, I4, I5, I6, I7> for Dyn<'_, StabbyPtrProvider, StabbyVtProvider>where
StabbyPtrProvider: IPtrOwned + IPtr,
StabbyVtProvider: HasDropVt + Copy + TransitiveDeref<StabbyVtableCall8<O, I0, I1, I2, I3, I4, I5, I6, I7>, StabbyTransitiveDerefN>,
source§impl<StabbyPtrProvider, 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 Dyn<'_, StabbyPtrProvider, StabbyVtProvider>where
StabbyPtrProvider: IPtrOwned + IPtr,
StabbyVtProvider: HasDropVt + Copy + TransitiveDeref<StabbyVtableCall9<O, I0, I1, I2, I3, I4, I5, I6, I7, I8>, StabbyTransitiveDerefN>,
impl<StabbyPtrProvider, 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 Dyn<'_, StabbyPtrProvider, StabbyVtProvider>where
StabbyPtrProvider: IPtrOwned + IPtr,
StabbyVtProvider: HasDropVt + Copy + TransitiveDeref<StabbyVtableCall9<O, I0, I1, I2, I3, I4, I5, I6, I7, I8>, StabbyTransitiveDerefN>,
source§impl<StabbyPtrProvider, StabbyVtProvider, StabbyTransitiveDerefN, O> CallMut0DynMut<StabbyTransitiveDerefN, O> for Dyn<'_, StabbyPtrProvider, StabbyVtProvider>where
StabbyPtrProvider: IPtrOwned + IPtrMut,
StabbyVtProvider: HasDropVt + Copy + TransitiveDeref<StabbyVtableCallMut0<O>, StabbyTransitiveDerefN>,
impl<StabbyPtrProvider, StabbyVtProvider, StabbyTransitiveDerefN, O> CallMut0DynMut<StabbyTransitiveDerefN, O> for Dyn<'_, StabbyPtrProvider, StabbyVtProvider>where
StabbyPtrProvider: IPtrOwned + IPtrMut,
StabbyVtProvider: HasDropVt + Copy + TransitiveDeref<StabbyVtableCallMut0<O>, StabbyTransitiveDerefN>,
source§impl<StabbyPtrProvider, StabbyVtProvider, StabbyTransitiveDerefN, O, I0> CallMut1DynMut<StabbyTransitiveDerefN, O, I0> for Dyn<'_, StabbyPtrProvider, StabbyVtProvider>where
StabbyPtrProvider: IPtrOwned + IPtrMut,
StabbyVtProvider: HasDropVt + Copy + TransitiveDeref<StabbyVtableCallMut1<O, I0>, StabbyTransitiveDerefN>,
impl<StabbyPtrProvider, StabbyVtProvider, StabbyTransitiveDerefN, O, I0> CallMut1DynMut<StabbyTransitiveDerefN, O, I0> for Dyn<'_, StabbyPtrProvider, StabbyVtProvider>where
StabbyPtrProvider: IPtrOwned + IPtrMut,
StabbyVtProvider: HasDropVt + Copy + TransitiveDeref<StabbyVtableCallMut1<O, I0>, StabbyTransitiveDerefN>,
source§impl<StabbyPtrProvider, StabbyVtProvider, StabbyTransitiveDerefN, O, I0, I1> CallMut2DynMut<StabbyTransitiveDerefN, O, I0, I1> for Dyn<'_, StabbyPtrProvider, StabbyVtProvider>where
StabbyPtrProvider: IPtrOwned + IPtrMut,
StabbyVtProvider: HasDropVt + Copy + TransitiveDeref<StabbyVtableCallMut2<O, I0, I1>, StabbyTransitiveDerefN>,
impl<StabbyPtrProvider, StabbyVtProvider, StabbyTransitiveDerefN, O, I0, I1> CallMut2DynMut<StabbyTransitiveDerefN, O, I0, I1> for Dyn<'_, StabbyPtrProvider, StabbyVtProvider>where
StabbyPtrProvider: IPtrOwned + IPtrMut,
StabbyVtProvider: HasDropVt + Copy + TransitiveDeref<StabbyVtableCallMut2<O, I0, I1>, StabbyTransitiveDerefN>,
source§impl<StabbyPtrProvider, StabbyVtProvider, StabbyTransitiveDerefN, O, I0, I1, I2> CallMut3DynMut<StabbyTransitiveDerefN, O, I0, I1, I2> for Dyn<'_, StabbyPtrProvider, StabbyVtProvider>where
StabbyPtrProvider: IPtrOwned + IPtrMut,
StabbyVtProvider: HasDropVt + Copy + TransitiveDeref<StabbyVtableCallMut3<O, I0, I1, I2>, StabbyTransitiveDerefN>,
impl<StabbyPtrProvider, StabbyVtProvider, StabbyTransitiveDerefN, O, I0, I1, I2> CallMut3DynMut<StabbyTransitiveDerefN, O, I0, I1, I2> for Dyn<'_, StabbyPtrProvider, StabbyVtProvider>where
StabbyPtrProvider: IPtrOwned + IPtrMut,
StabbyVtProvider: HasDropVt + Copy + TransitiveDeref<StabbyVtableCallMut3<O, I0, I1, I2>, StabbyTransitiveDerefN>,
source§impl<StabbyPtrProvider, StabbyVtProvider, StabbyTransitiveDerefN, O, I0, I1, I2, I3> CallMut4DynMut<StabbyTransitiveDerefN, O, I0, I1, I2, I3> for Dyn<'_, StabbyPtrProvider, StabbyVtProvider>where
StabbyPtrProvider: IPtrOwned + IPtrMut,
StabbyVtProvider: HasDropVt + Copy + TransitiveDeref<StabbyVtableCallMut4<O, I0, I1, I2, I3>, StabbyTransitiveDerefN>,
impl<StabbyPtrProvider, StabbyVtProvider, StabbyTransitiveDerefN, O, I0, I1, I2, I3> CallMut4DynMut<StabbyTransitiveDerefN, O, I0, I1, I2, I3> for Dyn<'_, StabbyPtrProvider, StabbyVtProvider>where
StabbyPtrProvider: IPtrOwned + IPtrMut,
StabbyVtProvider: HasDropVt + Copy + TransitiveDeref<StabbyVtableCallMut4<O, I0, I1, I2, I3>, StabbyTransitiveDerefN>,
source§impl<StabbyPtrProvider, StabbyVtProvider, StabbyTransitiveDerefN, O, I0, I1, I2, I3, I4> CallMut5DynMut<StabbyTransitiveDerefN, O, I0, I1, I2, I3, I4> for Dyn<'_, StabbyPtrProvider, StabbyVtProvider>where
StabbyPtrProvider: IPtrOwned + IPtrMut,
StabbyVtProvider: HasDropVt + Copy + TransitiveDeref<StabbyVtableCallMut5<O, I0, I1, I2, I3, I4>, StabbyTransitiveDerefN>,
impl<StabbyPtrProvider, StabbyVtProvider, StabbyTransitiveDerefN, O, I0, I1, I2, I3, I4> CallMut5DynMut<StabbyTransitiveDerefN, O, I0, I1, I2, I3, I4> for Dyn<'_, StabbyPtrProvider, StabbyVtProvider>where
StabbyPtrProvider: IPtrOwned + IPtrMut,
StabbyVtProvider: HasDropVt + Copy + TransitiveDeref<StabbyVtableCallMut5<O, I0, I1, I2, I3, I4>, StabbyTransitiveDerefN>,
source§impl<StabbyPtrProvider, StabbyVtProvider, StabbyTransitiveDerefN, O, I0, I1, I2, I3, I4, I5> CallMut6DynMut<StabbyTransitiveDerefN, O, I0, I1, I2, I3, I4, I5> for Dyn<'_, StabbyPtrProvider, StabbyVtProvider>where
StabbyPtrProvider: IPtrOwned + IPtrMut,
StabbyVtProvider: HasDropVt + Copy + TransitiveDeref<StabbyVtableCallMut6<O, I0, I1, I2, I3, I4, I5>, StabbyTransitiveDerefN>,
impl<StabbyPtrProvider, StabbyVtProvider, StabbyTransitiveDerefN, O, I0, I1, I2, I3, I4, I5> CallMut6DynMut<StabbyTransitiveDerefN, O, I0, I1, I2, I3, I4, I5> for Dyn<'_, StabbyPtrProvider, StabbyVtProvider>where
StabbyPtrProvider: IPtrOwned + IPtrMut,
StabbyVtProvider: HasDropVt + Copy + TransitiveDeref<StabbyVtableCallMut6<O, I0, I1, I2, I3, I4, I5>, StabbyTransitiveDerefN>,
source§impl<StabbyPtrProvider, StabbyVtProvider, StabbyTransitiveDerefN, O, I0, I1, I2, I3, I4, I5, I6> CallMut7DynMut<StabbyTransitiveDerefN, O, I0, I1, I2, I3, I4, I5, I6> for Dyn<'_, StabbyPtrProvider, StabbyVtProvider>where
StabbyPtrProvider: IPtrOwned + IPtrMut,
StabbyVtProvider: HasDropVt + Copy + TransitiveDeref<StabbyVtableCallMut7<O, I0, I1, I2, I3, I4, I5, I6>, StabbyTransitiveDerefN>,
impl<StabbyPtrProvider, StabbyVtProvider, StabbyTransitiveDerefN, O, I0, I1, I2, I3, I4, I5, I6> CallMut7DynMut<StabbyTransitiveDerefN, O, I0, I1, I2, I3, I4, I5, I6> for Dyn<'_, StabbyPtrProvider, StabbyVtProvider>where
StabbyPtrProvider: IPtrOwned + IPtrMut,
StabbyVtProvider: HasDropVt + Copy + TransitiveDeref<StabbyVtableCallMut7<O, I0, I1, I2, I3, I4, I5, I6>, StabbyTransitiveDerefN>,
source§impl<StabbyPtrProvider, StabbyVtProvider, StabbyTransitiveDerefN, O, I0, I1, I2, I3, I4, I5, I6, I7> CallMut8DynMut<StabbyTransitiveDerefN, O, I0, I1, I2, I3, I4, I5, I6, I7> for Dyn<'_, StabbyPtrProvider, StabbyVtProvider>where
StabbyPtrProvider: IPtrOwned + IPtrMut,
StabbyVtProvider: HasDropVt + Copy + TransitiveDeref<StabbyVtableCallMut8<O, I0, I1, I2, I3, I4, I5, I6, I7>, StabbyTransitiveDerefN>,
impl<StabbyPtrProvider, StabbyVtProvider, StabbyTransitiveDerefN, O, I0, I1, I2, I3, I4, I5, I6, I7> CallMut8DynMut<StabbyTransitiveDerefN, O, I0, I1, I2, I3, I4, I5, I6, I7> for Dyn<'_, StabbyPtrProvider, StabbyVtProvider>where
StabbyPtrProvider: IPtrOwned + IPtrMut,
StabbyVtProvider: HasDropVt + Copy + TransitiveDeref<StabbyVtableCallMut8<O, I0, I1, I2, I3, I4, I5, I6, I7>, StabbyTransitiveDerefN>,
source§impl<StabbyPtrProvider, StabbyVtProvider, StabbyTransitiveDerefN, O, I0, I1, I2, I3, I4, I5, I6, I7, I8> CallMut9DynMut<StabbyTransitiveDerefN, O, I0, I1, I2, I3, I4, I5, I6, I7, I8> for Dyn<'_, StabbyPtrProvider, StabbyVtProvider>where
StabbyPtrProvider: IPtrOwned + IPtrMut,
StabbyVtProvider: HasDropVt + Copy + TransitiveDeref<StabbyVtableCallMut9<O, I0, I1, I2, I3, I4, I5, I6, I7, I8>, StabbyTransitiveDerefN>,
impl<StabbyPtrProvider, StabbyVtProvider, StabbyTransitiveDerefN, O, I0, I1, I2, I3, I4, I5, I6, I7, I8> CallMut9DynMut<StabbyTransitiveDerefN, O, I0, I1, I2, I3, I4, I5, I6, I7, I8> for Dyn<'_, StabbyPtrProvider, StabbyVtProvider>where
StabbyPtrProvider: IPtrOwned + IPtrMut,
StabbyVtProvider: HasDropVt + Copy + TransitiveDeref<StabbyVtableCallMut9<O, I0, I1, I2, I3, I4, I5, I6, I7, I8>, StabbyTransitiveDerefN>,
source§impl<'a, Vt, P> From<P> for Dyn<'a, <P as IntoDyn>::Anonymized, Vt>where
Vt: HasDropVt + Copy + IConstConstructor<'static, <P as IntoDyn>::Target> + 'static,
P: IntoDyn + 'a,
<P as IntoDyn>::Anonymized: IPtrOwned,
impl<'a, Vt, P> From<P> for Dyn<'a, <P as IntoDyn>::Anonymized, Vt>where
Vt: HasDropVt + Copy + IConstConstructor<'static, <P as IntoDyn>::Target> + 'static,
P: IntoDyn + 'a,
<P as IntoDyn>::Anonymized: IPtrOwned,
source§impl<'a, Vt, P, Output> Future for Dyn<'a, P, VTable<StabbyVtableFuture<Output>, Vt>>
impl<'a, Vt, P, Output> Future for Dyn<'a, P, VTable<StabbyVtableFuture<Output>, Vt>>
source§fn poll(
self: Pin<&mut Dyn<'a, P, VTable<StabbyVtableFuture<Output>, Vt>>>,
cx: &mut Context<'_>
) -> Poll<<Dyn<'a, P, VTable<StabbyVtableFuture<Output>, Vt>> as Future>::Output>
fn poll( self: Pin<&mut Dyn<'a, P, VTable<StabbyVtableFuture<Output>, Vt>>>, cx: &mut Context<'_> ) -> Poll<<Dyn<'a, P, VTable<StabbyVtableFuture<Output>, Vt>> as Future>::Output>
source§impl<'a, Vt, P, Output> Future for Dyn<'a, P, VtSend<VTable<StabbyVtableFuture<Output>, Vt>>>
impl<'a, Vt, P, Output> Future for Dyn<'a, P, VtSend<VTable<StabbyVtableFuture<Output>, Vt>>>
source§fn poll(
self: Pin<&mut Dyn<'a, P, VtSend<VTable<StabbyVtableFuture<Output>, Vt>>>>,
cx: &mut Context<'_>
) -> Poll<<Dyn<'a, P, VtSend<VTable<StabbyVtableFuture<Output>, Vt>>> as Future>::Output>
fn poll( self: Pin<&mut Dyn<'a, P, VtSend<VTable<StabbyVtableFuture<Output>, Vt>>>>, cx: &mut Context<'_> ) -> Poll<<Dyn<'a, P, VtSend<VTable<StabbyVtableFuture<Output>, Vt>>> as Future>::Output>
source§impl<'a, Vt, P, Output> Future for Dyn<'a, P, VtSend<VtSync<VTable<StabbyVtableFuture<Output>, Vt>>>>
impl<'a, Vt, P, Output> Future for Dyn<'a, P, VtSend<VtSync<VTable<StabbyVtableFuture<Output>, Vt>>>>
source§fn poll(
self: Pin<&mut Dyn<'a, P, VtSend<VtSync<VTable<StabbyVtableFuture<Output>, Vt>>>>>,
cx: &mut Context<'_>
) -> Poll<<Dyn<'a, P, VtSend<VtSync<VTable<StabbyVtableFuture<Output>, Vt>>>> as Future>::Output>
fn poll( self: Pin<&mut Dyn<'a, P, VtSend<VtSync<VTable<StabbyVtableFuture<Output>, Vt>>>>>, cx: &mut Context<'_> ) -> Poll<<Dyn<'a, P, VtSend<VtSync<VTable<StabbyVtableFuture<Output>, Vt>>>> as Future>::Output>
source§impl<'a, Vt, P, Output> Future for Dyn<'a, P, VtSync<VTable<StabbyVtableFuture<Output>, Vt>>>
impl<'a, Vt, P, Output> Future for Dyn<'a, P, VtSync<VTable<StabbyVtableFuture<Output>, Vt>>>
source§fn poll(
self: Pin<&mut Dyn<'a, P, VtSync<VTable<StabbyVtableFuture<Output>, Vt>>>>,
cx: &mut Context<'_>
) -> Poll<<Dyn<'a, P, VtSync<VTable<StabbyVtableFuture<Output>, Vt>>> as Future>::Output>
fn poll( self: Pin<&mut Dyn<'a, P, VtSync<VTable<StabbyVtableFuture<Output>, Vt>>>>, cx: &mut Context<'_> ) -> Poll<<Dyn<'a, P, VtSync<VTable<StabbyVtableFuture<Output>, Vt>>> as Future>::Output>
source§impl<'a, Vt, P, Output> Future for Dyn<'a, P, VtSync<VtSend<VTable<StabbyVtableFuture<Output>, Vt>>>>
impl<'a, Vt, P, Output> Future for Dyn<'a, P, VtSync<VtSend<VTable<StabbyVtableFuture<Output>, Vt>>>>
source§fn poll(
self: Pin<&mut Dyn<'a, P, VtSync<VtSend<VTable<StabbyVtableFuture<Output>, Vt>>>>>,
cx: &mut Context<'_>
) -> Poll<<Dyn<'a, P, VtSync<VtSend<VTable<StabbyVtableFuture<Output>, Vt>>>> as Future>::Output>
fn poll( self: Pin<&mut Dyn<'a, P, VtSync<VtSend<VTable<StabbyVtableFuture<Output>, Vt>>>>>, cx: &mut Context<'_> ) -> Poll<<Dyn<'a, P, VtSync<VtSend<VTable<StabbyVtableFuture<Output>, Vt>>>> as Future>::Output>
source§impl<StabbyPtrProvider, StabbyVtProvider, StabbyTransitiveDerefN, _stabby_unselfed_0> FutureDyn<StabbyTransitiveDerefN, _stabby_unselfed_0> for Dyn<'_, StabbyPtrProvider, StabbyVtProvider>where
StabbyPtrProvider: IPtrOwned + IPtr,
StabbyVtProvider: HasDropVt + Copy + TransitiveDeref<StabbyVtableFuture<_stabby_unselfed_0>, StabbyTransitiveDerefN>,
_stabby_unselfed_0: IDeterminantProvider<()>,
impl<StabbyPtrProvider, StabbyVtProvider, StabbyTransitiveDerefN, _stabby_unselfed_0> FutureDyn<StabbyTransitiveDerefN, _stabby_unselfed_0> for Dyn<'_, StabbyPtrProvider, StabbyVtProvider>where
StabbyPtrProvider: IPtrOwned + IPtr,
StabbyVtProvider: HasDropVt + Copy + TransitiveDeref<StabbyVtableFuture<_stabby_unselfed_0>, StabbyTransitiveDerefN>,
_stabby_unselfed_0: IDeterminantProvider<()>,
source§impl<StabbyPtrProvider, StabbyVtProvider, StabbyTransitiveDerefN, _stabby_unselfed_0> FutureDynMut<StabbyTransitiveDerefN, _stabby_unselfed_0> for Dyn<'_, StabbyPtrProvider, StabbyVtProvider>where
StabbyPtrProvider: IPtrOwned + IPtrMut,
StabbyVtProvider: HasDropVt + Copy + TransitiveDeref<StabbyVtableFuture<_stabby_unselfed_0>, StabbyTransitiveDerefN>,
_stabby_unselfed_0: IDeterminantProvider<()>,
impl<StabbyPtrProvider, StabbyVtProvider, StabbyTransitiveDerefN, _stabby_unselfed_0> FutureDynMut<StabbyTransitiveDerefN, _stabby_unselfed_0> for Dyn<'_, StabbyPtrProvider, StabbyVtProvider>where
StabbyPtrProvider: IPtrOwned + IPtrMut,
StabbyVtProvider: HasDropVt + Copy + TransitiveDeref<StabbyVtableFuture<_stabby_unselfed_0>, StabbyTransitiveDerefN>,
_stabby_unselfed_0: IDeterminantProvider<()>,
source§impl<'a, P, Vt> IStable for Dyn<'a, P, Vt>where
P: IPtrOwned + 'a,
Vt: HasDropVt + 'static,
Struct<FieldPair<FieldPair<ManuallyDrop<P>, &'static Vt>, PhantomData<&'a P>>>: IStable,
ManuallyDrop<P>: IStable,
&'static Vt: IStable,
PhantomData<&'a P>: IStable,
impl<'a, P, Vt> IStable for Dyn<'a, P, Vt>where
P: IPtrOwned + 'a,
Vt: HasDropVt + 'static,
Struct<FieldPair<FieldPair<ManuallyDrop<P>, &'static Vt>, PhantomData<&'a P>>>: IStable,
ManuallyDrop<P>: IStable,
&'static Vt: IStable,
PhantomData<&'a P>: IStable,
§type ForbiddenValues = <Struct<FieldPair<FieldPair<ManuallyDrop<P>, &'static Vt>, PhantomData<&'a P>>> as IStable>::ForbiddenValues
type ForbiddenValues = <Struct<FieldPair<FieldPair<ManuallyDrop<P>, &'static Vt>, PhantomData<&'a P>>> as IStable>::ForbiddenValues
§type UnusedBits = <Struct<FieldPair<FieldPair<ManuallyDrop<P>, &'static Vt>, PhantomData<&'a P>>> as IStable>::UnusedBits
type UnusedBits = <Struct<FieldPair<FieldPair<ManuallyDrop<P>, &'static Vt>, PhantomData<&'a P>>> as IStable>::UnusedBits
§type Size = <Struct<FieldPair<FieldPair<ManuallyDrop<P>, &'static Vt>, PhantomData<&'a P>>> as IStable>::Size
type Size = <Struct<FieldPair<FieldPair<ManuallyDrop<P>, &'static Vt>, PhantomData<&'a P>>> as IStable>::Size
§type Align = <Struct<FieldPair<FieldPair<ManuallyDrop<P>, &'static Vt>, PhantomData<&'a P>>> as IStable>::Align
type Align = <Struct<FieldPair<FieldPair<ManuallyDrop<P>, &'static Vt>, PhantomData<&'a P>>> as IStable>::Align
§type HasExactlyOneNiche = <Struct<FieldPair<FieldPair<ManuallyDrop<P>, &'static Vt>, PhantomData<&'a P>>> as IStable>::HasExactlyOneNiche
type HasExactlyOneNiche = <Struct<FieldPair<FieldPair<ManuallyDrop<P>, &'static Vt>, PhantomData<&'a P>>> as IStable>::HasExactlyOneNiche
core::option::Option
s are stable: Read more§type ContainsIndirections = <Struct<FieldPair<FieldPair<ManuallyDrop<P>, &'static Vt>, PhantomData<&'a P>>> as IStable>::ContainsIndirections
type ContainsIndirections = <Struct<FieldPair<FieldPair<ManuallyDrop<P>, &'static Vt>, PhantomData<&'a P>>> as IStable>::ContainsIndirections
source§const REPORT: &'static TypeReport = _
const REPORT: &'static TypeReport = _
source§const ID: u64 = _
const ID: u64 = _
crate::report::gen_id
, but can be manually set.source§impl<StabbyPtrProvider, StabbyVtProvider, StabbyTransitiveDerefN> IStableAllocDynMut<StabbyTransitiveDerefN> for Dyn<'_, StabbyPtrProvider, StabbyVtProvider>where
StabbyPtrProvider: IPtrOwned + IPtrMut,
StabbyVtProvider: HasDropVt + Copy + TransitiveDeref<StabbyVtableIStableAlloc, StabbyTransitiveDerefN>,
impl<StabbyPtrProvider, StabbyVtProvider, StabbyTransitiveDerefN> IStableAllocDynMut<StabbyTransitiveDerefN> for Dyn<'_, StabbyPtrProvider, StabbyVtProvider>where
StabbyPtrProvider: IPtrOwned + IPtrMut,
StabbyVtProvider: HasDropVt + Copy + TransitiveDeref<StabbyVtableIStableAlloc, StabbyTransitiveDerefN>,
source§impl<'a, P, Head, Tail> IntoSuperTrait<Dyn<'a, P, Tail>> for Dyn<'a, P, VtSend<VTable<Head, Tail>>>
impl<'a, P, Head, Tail> IntoSuperTrait<Dyn<'a, P, Tail>> for Dyn<'a, P, VtSend<VTable<Head, Tail>>>
source§impl<'a, P, Head, Tail> IntoSuperTrait<Dyn<'a, P, Tail>> for Dyn<'a, P, VtSend<VtSync<VTable<Head, Tail>>>>
impl<'a, P, Head, Tail> IntoSuperTrait<Dyn<'a, P, Tail>> for Dyn<'a, P, VtSend<VtSync<VTable<Head, Tail>>>>
source§impl<'a, P, Head, Tail> IntoSuperTrait<Dyn<'a, P, Tail>> for Dyn<'a, P, VtSync<VTable<Head, Tail>>>
impl<'a, P, Head, Tail> IntoSuperTrait<Dyn<'a, P, Tail>> for Dyn<'a, P, VtSync<VTable<Head, Tail>>>
source§impl<'a, P, Head, Tail> IntoSuperTrait<Dyn<'a, P, Tail>> for Dyn<'a, P, VtSync<VtSend<VTable<Head, Tail>>>>
impl<'a, P, Head, Tail> IntoSuperTrait<Dyn<'a, P, Tail>> for Dyn<'a, P, VtSync<VtSend<VTable<Head, Tail>>>>
source§impl<'a, P, Head, Tail> IntoSuperTrait<Dyn<'a, P, VtSend<Tail>>> for Dyn<'a, P, VtSend<VTable<Head, Tail>>>
impl<'a, P, Head, Tail> IntoSuperTrait<Dyn<'a, P, VtSend<Tail>>> for Dyn<'a, P, VtSend<VTable<Head, Tail>>>
source§impl<'a, P, Head, Tail> IntoSuperTrait<Dyn<'a, P, VtSend<VtSync<Tail>>>> for Dyn<'a, P, VtSend<VtSync<VTable<Head, Tail>>>>
impl<'a, P, Head, Tail> IntoSuperTrait<Dyn<'a, P, VtSend<VtSync<Tail>>>> for Dyn<'a, P, VtSend<VtSync<VTable<Head, Tail>>>>
source§impl<'a, P, Head, Tail> IntoSuperTrait<Dyn<'a, P, VtSync<Tail>>> for Dyn<'a, P, VtSync<VTable<Head, Tail>>>
impl<'a, P, Head, Tail> IntoSuperTrait<Dyn<'a, P, VtSync<Tail>>> for Dyn<'a, P, VtSync<VTable<Head, Tail>>>
source§impl<'a, P, Head, Tail> IntoSuperTrait<Dyn<'a, P, VtSync<VtSend<Tail>>>> for Dyn<'a, P, VtSync<VtSend<VTable<Head, Tail>>>>
impl<'a, P, Head, Tail> IntoSuperTrait<Dyn<'a, P, VtSync<VtSend<Tail>>>> for Dyn<'a, P, VtSync<VtSend<VTable<Head, Tail>>>>
source§impl<'a, Vt, P, Output> Iterator for Dyn<'a, P, VTable<StabbyVtableIterator<Output>, Vt>>
impl<'a, Vt, P, Output> Iterator for Dyn<'a, P, VTable<StabbyVtableIterator<Output>, Vt>>
source§fn next(
&mut self
) -> Option<<Dyn<'a, P, VTable<StabbyVtableIterator<Output>, Vt>> as Iterator>::Item>
fn next( &mut self ) -> Option<<Dyn<'a, P, VTable<StabbyVtableIterator<Output>, Vt>> as Iterator>::Item>
source§fn size_hint(&self) -> (usize, Option<usize>)
fn size_hint(&self) -> (usize, Option<usize>)
source§fn next_chunk<const N: usize>(
&mut self
) -> Result<[Self::Item; N], IntoIter<Self::Item, N>>where
Self: Sized,
fn next_chunk<const N: usize>(
&mut self
) -> Result<[Self::Item; N], IntoIter<Self::Item, N>>where
Self: Sized,
iter_next_chunk
)N
values. Read more1.0.0 · source§fn count(self) -> usizewhere
Self: Sized,
fn count(self) -> usizewhere
Self: Sized,
1.0.0 · source§fn last(self) -> Option<Self::Item>where
Self: Sized,
fn last(self) -> Option<Self::Item>where
Self: Sized,
source§fn advance_by(&mut self, n: usize) -> Result<(), NonZero<usize>>
fn advance_by(&mut self, n: usize) -> Result<(), NonZero<usize>>
iter_advance_by
)n
elements. Read more1.0.0 · source§fn nth(&mut self, n: usize) -> Option<Self::Item>
fn nth(&mut self, n: usize) -> Option<Self::Item>
n
th element of the iterator. Read more1.28.0 · source§fn step_by(self, step: usize) -> StepBy<Self>where
Self: Sized,
fn step_by(self, step: usize) -> StepBy<Self>where
Self: Sized,
1.0.0 · source§fn chain<U>(self, other: U) -> Chain<Self, <U as IntoIterator>::IntoIter>
fn chain<U>(self, other: U) -> Chain<Self, <U as IntoIterator>::IntoIter>
1.0.0 · source§fn zip<U>(self, other: U) -> Zip<Self, <U as IntoIterator>::IntoIter>where
Self: Sized,
U: IntoIterator,
fn zip<U>(self, other: U) -> Zip<Self, <U as IntoIterator>::IntoIter>where
Self: Sized,
U: IntoIterator,
source§fn intersperse_with<G>(self, separator: G) -> IntersperseWith<Self, G>
fn intersperse_with<G>(self, separator: G) -> IntersperseWith<Self, G>
iter_intersperse
)separator
between adjacent items of the original iterator. Read more1.0.0 · source§fn map<B, F>(self, f: F) -> Map<Self, F>
fn map<B, F>(self, f: F) -> Map<Self, F>
1.0.0 · source§fn filter<P>(self, predicate: P) -> Filter<Self, P>
fn filter<P>(self, predicate: P) -> Filter<Self, P>
1.0.0 · source§fn filter_map<B, F>(self, f: F) -> FilterMap<Self, F>
fn filter_map<B, F>(self, f: F) -> FilterMap<Self, F>
1.0.0 · source§fn enumerate(self) -> Enumerate<Self>where
Self: Sized,
fn enumerate(self) -> Enumerate<Self>where
Self: Sized,
1.0.0 · source§fn skip_while<P>(self, predicate: P) -> SkipWhile<Self, P>
fn skip_while<P>(self, predicate: P) -> SkipWhile<Self, P>
1.0.0 · source§fn take_while<P>(self, predicate: P) -> TakeWhile<Self, P>
fn take_while<P>(self, predicate: P) -> TakeWhile<Self, P>
1.57.0 · source§fn map_while<B, P>(self, predicate: P) -> MapWhile<Self, P>
fn map_while<B, P>(self, predicate: P) -> MapWhile<Self, P>
1.0.0 · source§fn skip(self, n: usize) -> Skip<Self>where
Self: Sized,
fn skip(self, n: usize) -> Skip<Self>where
Self: Sized,
n
elements. Read more1.0.0 · source§fn take(self, n: usize) -> Take<Self>where
Self: Sized,
fn take(self, n: usize) -> Take<Self>where
Self: Sized,
n
elements, or fewer
if the underlying iterator ends sooner. Read more1.0.0 · source§fn flat_map<U, F>(self, f: F) -> FlatMap<Self, U, F>
fn flat_map<U, F>(self, f: F) -> FlatMap<Self, U, F>
source§fn map_windows<F, R, const N: usize>(self, f: F) -> MapWindows<Self, F, N>
fn map_windows<F, R, const N: usize>(self, f: F) -> MapWindows<Self, F, N>
iter_map_windows
)f
for each contiguous window of size N
over
self
and returns an iterator over the outputs of f
. Like slice::windows()
,
the windows during mapping overlap as well. Read more1.0.0 · source§fn inspect<F>(self, f: F) -> Inspect<Self, F>
fn inspect<F>(self, f: F) -> Inspect<Self, F>
1.0.0 · source§fn by_ref(&mut self) -> &mut Selfwhere
Self: Sized,
fn by_ref(&mut self) -> &mut Selfwhere
Self: Sized,
source§fn collect_into<E>(self, collection: &mut E) -> &mut E
fn collect_into<E>(self, collection: &mut E) -> &mut E
iter_collect_into
)1.0.0 · source§fn partition<B, F>(self, f: F) -> (B, B)
fn partition<B, F>(self, f: F) -> (B, B)
source§fn is_partitioned<P>(self, predicate: P) -> bool
fn is_partitioned<P>(self, predicate: P) -> bool
iter_is_partitioned
)true
precede all those that return false
. Read more1.27.0 · source§fn try_fold<B, F, R>(&mut self, init: B, f: F) -> R
fn try_fold<B, F, R>(&mut self, init: B, f: F) -> R
1.27.0 · source§fn try_for_each<F, R>(&mut self, f: F) -> R
fn try_for_each<F, R>(&mut self, f: F) -> R
1.0.0 · source§fn fold<B, F>(self, init: B, f: F) -> B
fn fold<B, F>(self, init: B, f: F) -> B
1.51.0 · source§fn reduce<F>(self, f: F) -> Option<Self::Item>
fn reduce<F>(self, f: F) -> Option<Self::Item>
source§fn try_reduce<F, R>(
&mut self,
f: F
) -> <<R as Try>::Residual as Residual<Option<<R as Try>::Output>>>::TryType
fn try_reduce<F, R>( &mut self, f: F ) -> <<R as Try>::Residual as Residual<Option<<R as Try>::Output>>>::TryType
iterator_try_reduce
)1.0.0 · source§fn all<F>(&mut self, f: F) -> bool
fn all<F>(&mut self, f: F) -> bool
1.0.0 · source§fn any<F>(&mut self, f: F) -> bool
fn any<F>(&mut self, f: F) -> bool
1.0.0 · source§fn find<P>(&mut self, predicate: P) -> Option<Self::Item>
fn find<P>(&mut self, predicate: P) -> Option<Self::Item>
1.30.0 · source§fn find_map<B, F>(&mut self, f: F) -> Option<B>
fn find_map<B, F>(&mut self, f: F) -> Option<B>
source§fn try_find<F, R>(
&mut self,
f: F
) -> <<R as Try>::Residual as Residual<Option<Self::Item>>>::TryType
fn try_find<F, R>( &mut self, f: F ) -> <<R as Try>::Residual as Residual<Option<Self::Item>>>::TryType
try_find
)1.0.0 · source§fn position<P>(&mut self, predicate: P) -> Option<usize>
fn position<P>(&mut self, predicate: P) -> Option<usize>
1.6.0 · source§fn max_by_key<B, F>(self, f: F) -> Option<Self::Item>
fn max_by_key<B, F>(self, f: F) -> Option<Self::Item>
1.15.0 · source§fn max_by<F>(self, compare: F) -> Option<Self::Item>
fn max_by<F>(self, compare: F) -> Option<Self::Item>
1.6.0 · source§fn min_by_key<B, F>(self, f: F) -> Option<Self::Item>
fn min_by_key<B, F>(self, f: F) -> Option<Self::Item>
1.15.0 · source§fn min_by<F>(self, compare: F) -> Option<Self::Item>
fn min_by<F>(self, compare: F) -> Option<Self::Item>
1.0.0 · source§fn unzip<A, B, FromA, FromB>(self) -> (FromA, FromB)
fn unzip<A, B, FromA, FromB>(self) -> (FromA, FromB)
1.36.0 · source§fn copied<'a, T>(self) -> Copied<Self>
fn copied<'a, T>(self) -> Copied<Self>
source§fn array_chunks<const N: usize>(self) -> ArrayChunks<Self, N>where
Self: Sized,
fn array_chunks<const N: usize>(self) -> ArrayChunks<Self, N>where
Self: Sized,
iter_array_chunks
)N
elements of the iterator at a time. Read more1.11.0 · source§fn product<P>(self) -> P
fn product<P>(self) -> P
source§fn cmp_by<I, F>(self, other: I, cmp: F) -> Ordering
fn cmp_by<I, F>(self, other: I, cmp: F) -> Ordering
iter_order_by
)Iterator
with those
of another with respect to the specified comparison function. Read more1.5.0 · source§fn partial_cmp<I>(self, other: I) -> Option<Ordering>
fn partial_cmp<I>(self, other: I) -> Option<Ordering>
PartialOrd
elements of
this Iterator
with those of another. The comparison works like short-circuit
evaluation, returning a result without comparing the remaining elements.
As soon as an order can be determined, the evaluation stops and a result is returned. Read moresource§fn partial_cmp_by<I, F>(self, other: I, partial_cmp: F) -> Option<Ordering>where
Self: Sized,
I: IntoIterator,
F: FnMut(Self::Item, <I as IntoIterator>::Item) -> Option<Ordering>,
fn partial_cmp_by<I, F>(self, other: I, partial_cmp: F) -> Option<Ordering>where
Self: Sized,
I: IntoIterator,
F: FnMut(Self::Item, <I as IntoIterator>::Item) -> Option<Ordering>,
iter_order_by
)Iterator
with those
of another with respect to the specified comparison function. Read moresource§fn eq_by<I, F>(self, other: I, eq: F) -> bool
fn eq_by<I, F>(self, other: I, eq: F) -> bool
iter_order_by
)1.5.0 · source§fn lt<I>(self, other: I) -> bool
fn lt<I>(self, other: I) -> bool
Iterator
are lexicographically
less than those of another. Read more1.5.0 · source§fn le<I>(self, other: I) -> bool
fn le<I>(self, other: I) -> bool
Iterator
are lexicographically
less or equal to those of another. Read more1.5.0 · source§fn gt<I>(self, other: I) -> bool
fn gt<I>(self, other: I) -> bool
Iterator
are lexicographically
greater than those of another. Read more1.5.0 · source§fn ge<I>(self, other: I) -> bool
fn ge<I>(self, other: I) -> bool
Iterator
are lexicographically
greater than or equal to those of another. Read moresource§fn is_sorted_by<F>(self, compare: F) -> bool
fn is_sorted_by<F>(self, compare: F) -> bool
is_sorted
)source§fn is_sorted_by_key<F, K>(self, f: F) -> bool
fn is_sorted_by_key<F, K>(self, f: F) -> bool
is_sorted
)