Struct stabby::DynRef

source ·
#[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,

source

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,

source

pub const fn ptr(&self) -> &()

Access the data pointer.

source

pub const fn vtable(&self) -> &Vt

Access the vtable.

source

pub fn into_super<Super>(self) -> Super
where 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.

source

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 and U have identical implementations for all methods of the vtable,
  • the compiler chose to merge these implementations, making T and U 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.

source

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>
where StabbyVtProvider: TransitiveDeref<StabbyVtableAny, StabbyTransitiveDerefN> + Copy,

source§

extern "C" fn report(&self) -> &'static TypeReport

An stabby-generated item for Any

source§

extern "C" fn id(&self) -> u64

An stabby-generated item for Any

source§

impl<StabbyVtProvider, StabbyTransitiveDerefN, O> Call0Dyn<StabbyTransitiveDerefN, O> for DynRef<'_, StabbyVtProvider>
where StabbyVtProvider: TransitiveDeref<StabbyVtableCall0<O>, StabbyTransitiveDerefN> + Copy,

source§

extern "C" fn call(&self) -> O

An stabby-generated item for Call0

source§

impl<StabbyVtProvider, StabbyTransitiveDerefN, O, I0> Call1Dyn<StabbyTransitiveDerefN, O, I0> for DynRef<'_, StabbyVtProvider>
where StabbyVtProvider: TransitiveDeref<StabbyVtableCall1<O, I0>, StabbyTransitiveDerefN> + Copy,

source§

extern "C" fn call(&self, _0: I0) -> O

An stabby-generated item for Call1

source§

impl<StabbyVtProvider, StabbyTransitiveDerefN, O, I0, I1> Call2Dyn<StabbyTransitiveDerefN, O, I0, I1> for DynRef<'_, StabbyVtProvider>
where StabbyVtProvider: TransitiveDeref<StabbyVtableCall2<O, I0, I1>, StabbyTransitiveDerefN> + Copy,

source§

extern "C" fn call(&self, _0: I0, _1: I1) -> O

An stabby-generated item for Call2

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,

source§

extern "C" fn call(&self, _0: I0, _1: I1, _2: I2) -> O

An stabby-generated item for Call3

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,

source§

extern "C" fn call(&self, _0: I0, _1: I1, _2: I2, _3: I3) -> O

An stabby-generated item for Call4

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,

source§

extern "C" fn call(&self, _0: I0, _1: I1, _2: I2, _3: I3, _4: I4) -> O

An stabby-generated item for Call5

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,

source§

extern "C" fn call( &self, _0: I0, _1: I1, _2: I2, _3: I3, _4: I4, _5: I5 ) -> O

An stabby-generated item for Call6

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,

source§

extern "C" fn call( &self, _0: I0, _1: I1, _2: I2, _3: I3, _4: I4, _5: I5, _6: I6 ) -> O

An stabby-generated item for Call7

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,

source§

extern "C" fn call( &self, _0: I0, _1: I1, _2: I2, _3: I3, _4: I4, _5: I5, _6: I6, _7: I7 ) -> O

An stabby-generated item for Call8

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,

source§

extern "C" fn call( &self, _0: I0, _1: I1, _2: I2, _3: I3, _4: I4, _5: I5, _6: I6, _7: I7, _8: I8 ) -> O

An stabby-generated item for Call9

source§

impl<'a, Vt> Clone for DynRef<'a, Vt>
where Vt: Clone + 'static,

source§

fn clone(&self) -> DynRef<'a, Vt>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<'a, T, Vt> From<&'a T> for DynRef<'a, Vt>
where Vt: Copy + IConstConstructor<'a, T>,

source§

fn from(value: &'a T) -> DynRef<'a, Vt>

Converts to this type from the input type.
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<()>,

§

type Output = _stabby_unselfed_0

An stabby-generated item for Future

source§

impl<'a, Vt> IStable for DynRef<'a, Vt>

§

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

The padding bits in the annotated types
§

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

The alignment of the annotated type in bytes.
§

type HasExactlyOneNiche = <Struct<FieldPair<FieldPair<&'a (), &'a Vt>, PhantomData<*mut ()>>> as IStable>::HasExactlyOneNiche

Allows the detection of whether or not core::option::Options are stable: Read more
§

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 = _

A compile-time generated report of the fields of the type, allowing for compatibility inspection.
source§

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§

fn size() -> usize

Returns the size of the type.
source§

fn align() -> usize

Returns the alignment of the type.
source§

impl<'a, Head, Tail> IntoSuperTrait<DynRef<'a, Tail>> for DynRef<'a, VTable<Head, Tail>>
where Tail: HasDropVt + 'static,

source§

fn into_super(this: DynRef<'a, VTable<Head, Tail>>) -> DynRef<'a, Tail>

Cast dyn A + B into dyn A.
source§

impl<'a, Head, Tail> IntoSuperTrait<DynRef<'a, Tail>> for DynRef<'a, VtSend<VTable<Head, Tail>>>
where Tail: HasDropVt + 'static,

source§

fn into_super(this: DynRef<'a, VtSend<VTable<Head, Tail>>>) -> DynRef<'a, Tail>

Cast dyn A + B into dyn A.
source§

impl<'a, Head, Tail> IntoSuperTrait<DynRef<'a, Tail>> for DynRef<'a, VtSend<VtSync<VTable<Head, Tail>>>>
where Tail: HasDropVt + 'static,

source§

fn into_super( this: DynRef<'a, VtSend<VtSync<VTable<Head, Tail>>>> ) -> DynRef<'a, Tail>

Cast dyn A + B into dyn A.
source§

impl<'a, Head, Tail> IntoSuperTrait<DynRef<'a, Tail>> for DynRef<'a, VtSync<VTable<Head, Tail>>>
where Tail: HasDropVt + 'static,

source§

fn into_super(this: DynRef<'a, VtSync<VTable<Head, Tail>>>) -> DynRef<'a, Tail>

Cast dyn A + B into dyn A.
source§

impl<'a, Head, Tail> IntoSuperTrait<DynRef<'a, Tail>> for DynRef<'a, VtSync<VtSend<VTable<Head, Tail>>>>
where Tail: HasDropVt + 'static,

source§

fn into_super( this: DynRef<'a, VtSync<VtSend<VTable<Head, Tail>>>> ) -> DynRef<'a, Tail>

Cast dyn A + B into dyn A.
source§

impl<'a, Vt> IntoSuperTrait<DynRef<'a, Vt>> for DynRef<'a, VtSend<Vt>>
where Vt: HasDropVt + 'static,

source§

fn into_super(this: DynRef<'a, VtSend<Vt>>) -> DynRef<'a, Vt>

Cast dyn A + B into dyn A.
source§

impl<'a, Vt> IntoSuperTrait<DynRef<'a, Vt>> for DynRef<'a, VtSend<VtSync<Vt>>>
where Vt: HasDropVt + 'static,

source§

fn into_super(this: DynRef<'a, VtSend<VtSync<Vt>>>) -> DynRef<'a, Vt>

Cast dyn A + B into dyn A.
source§

impl<'a, Vt> IntoSuperTrait<DynRef<'a, Vt>> for DynRef<'a, VtSync<Vt>>
where Vt: HasDropVt + 'static,

source§

fn into_super(this: DynRef<'a, VtSync<Vt>>) -> DynRef<'a, Vt>

Cast dyn A + B into dyn A.
source§

impl<'a, Vt> IntoSuperTrait<DynRef<'a, Vt>> for DynRef<'a, VtSync<VtSend<Vt>>>
where Vt: HasDropVt + 'static,

source§

fn into_super(this: DynRef<'a, VtSync<VtSend<Vt>>>) -> DynRef<'a, Vt>

Cast dyn A + B into dyn A.
source§

impl<'a, Head, Tail> IntoSuperTrait<DynRef<'a, VtSend<Tail>>> for DynRef<'a, VtSend<VTable<Head, Tail>>>
where Tail: HasDropVt + 'static,

source§

fn into_super( this: DynRef<'a, VtSend<VTable<Head, Tail>>> ) -> DynRef<'a, VtSend<Tail>>

Cast dyn A + B into dyn A.
source§

impl<'a, Vt> IntoSuperTrait<DynRef<'a, VtSend<Vt>>> for DynRef<'a, VtSend<VtSync<Vt>>>
where Vt: HasDropVt + 'static,

source§

fn into_super(this: DynRef<'a, VtSend<VtSync<Vt>>>) -> DynRef<'a, VtSend<Vt>>

Cast dyn A + B into dyn A.
source§

impl<'a, Head, Tail> IntoSuperTrait<DynRef<'a, VtSend<VtSync<Tail>>>> for DynRef<'a, VtSend<VtSync<VTable<Head, Tail>>>>
where Tail: HasDropVt + 'static,

source§

fn into_super( this: DynRef<'a, VtSend<VtSync<VTable<Head, Tail>>>> ) -> DynRef<'a, VtSend<VtSync<Tail>>>

Cast dyn A + B into dyn A.
source§

impl<'a, Head, Tail> IntoSuperTrait<DynRef<'a, VtSync<Tail>>> for DynRef<'a, VtSync<VTable<Head, Tail>>>
where Tail: HasDropVt + 'static,

source§

fn into_super( this: DynRef<'a, VtSync<VTable<Head, Tail>>> ) -> DynRef<'a, VtSync<Tail>>

Cast dyn A + B into dyn A.
source§

impl<'a, Vt> IntoSuperTrait<DynRef<'a, VtSync<Vt>>> for DynRef<'a, VtSync<VtSend<Vt>>>
where Vt: HasDropVt + 'static,

source§

fn into_super(this: DynRef<'a, VtSync<VtSend<Vt>>>) -> DynRef<'a, VtSync<Vt>>

Cast dyn A + B into dyn A.
source§

impl<'a, Head, Tail> IntoSuperTrait<DynRef<'a, VtSync<VtSend<Tail>>>> for DynRef<'a, VtSync<VtSend<VTable<Head, Tail>>>>
where Tail: HasDropVt + 'static,

source§

fn into_super( this: DynRef<'a, VtSync<VtSend<VTable<Head, Tail>>>> ) -> DynRef<'a, VtSync<VtSend<Tail>>>

Cast dyn A + B into dyn A.
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<()>,

§

type Item = _stabby_unselfed_0

An stabby-generated item for Iterator

source§

extern "C" fn size_hint(&self) -> Tuple<usize, Option<usize>>

An stabby-generated item for Iterator

source§

impl<StabbyVtProvider, StabbyTransitiveDerefN, O> CallMut0Dyn<StabbyTransitiveDerefN, O> for DynRef<'_, StabbyVtProvider>
where StabbyVtProvider: TransitiveDeref<StabbyVtableCallMut0<O>, StabbyTransitiveDerefN> + Copy,

source§

impl<StabbyVtProvider, StabbyTransitiveDerefN, O, I0> CallMut1Dyn<StabbyTransitiveDerefN, O, I0> for DynRef<'_, StabbyVtProvider>
where StabbyVtProvider: TransitiveDeref<StabbyVtableCallMut1<O, I0>, StabbyTransitiveDerefN> + Copy,

source§

impl<StabbyVtProvider, StabbyTransitiveDerefN, O, I0, I1> CallMut2Dyn<StabbyTransitiveDerefN, O, I0, I1> for DynRef<'_, StabbyVtProvider>
where StabbyVtProvider: TransitiveDeref<StabbyVtableCallMut2<O, I0, I1>, StabbyTransitiveDerefN> + Copy,

source§

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,

source§

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,

source§

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,

source§

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,

source§

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,

source§

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,

source§

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,

source§

impl<'a, Vt> Copy for DynRef<'a, Vt>
where Vt: Copy + 'static,

source§

impl<StabbyVtProvider, StabbyTransitiveDerefN> IStableAllocDyn<StabbyTransitiveDerefN> for DynRef<'_, StabbyVtProvider>
where StabbyVtProvider: TransitiveDeref<StabbyVtableIStableAlloc, StabbyTransitiveDerefN> + Copy,

source§

impl<'a, Vt> Send for DynRef<'a, Vt>
where Vt: HasSendVt,

source§

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

source§

fn ref_as<T>(&self) -> <Source as IGuardRef<T>>::Guard<'_>
where Source: IGuardRef<T>, T: ?Sized,

Provides immutable access to a type as if it were its ABI-unstable equivalent.
source§

fn mut_as<T>(&mut self) -> <Source as IGuardMut<T>>::GuardMut<'_>
where Source: IGuardMut<T>, T: ?Sized,

Provides mutable access to a type as if it were its ABI-unstable equivalent.
source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Any for T
where T: IStable,

source§

extern "C" fn report(&self) -> &'static TypeReport

The report of the type.
source§

extern "C" fn id(&self) -> u64

The id of the type.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, As> IGuardMut<As> for T
where T: Into<As>, As: Into<T>,

§

type GuardMut<'a> = MutAs<'a, T, As> where T: 'a

The type of the guard which will clean up the temporary after applying its changes to the original.
source§

fn guard_mut_inner(&mut self) -> <T as IGuardMut<As>>::GuardMut<'_>

Construct the temporary and guard it through a mutable reference.
source§

impl<T, As> IGuardRef<As> for T
where T: Into<As>, As: Into<T>,

§

type Guard<'a> = RefAs<'a, T, As> where T: 'a

The type of the guard which will clean up the temporary.
source§

fn guard_ref_inner(&self) -> <T as IGuardRef<As>>::Guard<'_>

Construct the temporary and guard it through an immutable reference.
source§

impl<T> Includes<End> for T

§

type Output = End

The result
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.