ProcessInstance

Struct ProcessInstance 

Source
pub struct ProcessInstance<'cglue_a, CGlueInst, CGlueCtx>
where CGlueInst: 'cglue_a, CGlueCtx: ContextBounds, ProcessInstanceContainer<CGlueInst, CGlueCtx>: CGlueObjBase,
{ /* private fields */ }
Expand description

Trait group potentially implementing MemoryView < > + Process < > + VirtualTranslate < > traits.

Optional traits are not implemented here, however. There are numerous conversion functions available for safely retrieving a concrete collection of traits.

check_impl_ functions allow to check if the object implements the wanted traits.

into_impl_ functions consume the object and produce a new final structure that keeps only the required information.

cast_impl_ functions merely check and transform the object into a type that can be transformed back into ProcessInstance without losing data.

as_ref_, and as_mut_ functions obtain references to safe objects, but do not perform any memory transformations either. They are the safest to use, because there is no risk of accidentally consuming the whole object.

Implementations§

Source§

impl<'cglue_a, CGlueInst, CGlueCtx> ProcessInstance<'cglue_a, CGlueInst, CGlueCtx>
where CGlueCtx: ContextBounds, ProcessInstanceContainer<CGlueInst, CGlueCtx>: CGlueObjBase,

Source

pub fn enable_virtualtranslate( self, ) -> ProcessInstance<'cglue_a, CGlueInst, CGlueCtx>
where &'cglue_a VirtualTranslateVtbl<'cglue_a, ProcessInstanceContainer<CGlueInst, CGlueCtx>>: Default,

Source§

impl<'cglue_a, CGlueInst, CGlueCtx> ProcessInstance<'cglue_a, CGlueInst, CGlueCtx>
where CGlueCtx: ContextBounds, ProcessInstanceContainer<CGlueInst, CGlueCtx>: CGlueObjBase, &'cglue_a MemoryViewVtbl<'cglue_a, ProcessInstanceContainer<CGlueInst, CGlueCtx>>: 'cglue_a + Default, &'cglue_a ProcessVtbl<'cglue_a, ProcessInstanceContainer<CGlueInst, CGlueCtx>>: 'cglue_a + Default,

Source

pub fn new( instance: CGlueInst, context: CGlueCtx, vtbl_virtualtranslate: Option<&'cglue_a VirtualTranslateVtbl<'cglue_a, ProcessInstanceContainer<CGlueInst, CGlueCtx>>>, ) -> ProcessInstance<'cglue_a, CGlueInst, CGlueCtx>
where &'cglue_a MemoryViewVtbl<'cglue_a, ProcessInstanceContainer<CGlueInst, CGlueCtx>>: 'cglue_a + Default, &'cglue_a ProcessVtbl<'cglue_a, ProcessInstanceContainer<CGlueInst, CGlueCtx>>: 'cglue_a + Default,

Create new instance of ProcessInstance.

Source§

impl<'cglue_a, CGlueT> ProcessInstance<'cglue_a, CBox<'cglue_a, CGlueT>, PhantomData<c_void>>

Source

pub fn new_boxed( this: CGlueT, vtbl_virtualtranslate: Option<&'cglue_a VirtualTranslateVtbl<'cglue_a, ProcessInstanceContainer<CBox<'cglue_a, CGlueT>, PhantomData<c_void>>>>, ) -> ProcessInstance<'cglue_a, CBox<'cglue_a, CGlueT>, PhantomData<c_void>>
where &'cglue_a MemoryViewVtbl<'cglue_a, ProcessInstanceContainer<CBox<'cglue_a, CGlueT>, PhantomData<c_void>>>: 'cglue_a + Default, &'cglue_a ProcessVtbl<'cglue_a, ProcessInstanceContainer<CBox<'cglue_a, CGlueT>, PhantomData<c_void>>>: 'cglue_a + Default,

Create new instance of ProcessInstance.

instance will be moved onto heap.

Source§

impl<'cglue_a, CGlueInst, CGlueCtx> ProcessInstance<'cglue_a, CGlueInst, CGlueCtx>
where CGlueCtx: ContextBounds, ProcessInstanceContainer<CGlueInst, CGlueCtx>: CGlueObjBase,

Source

pub fn check_impl_virtualtranslate(&self) -> bool
where ProcessInstanceWithVirtualTranslate<'cglue_a, CGlueInst, CGlueCtx>: 'cglue_a + MemoryView + Process + VirtualTranslate,

Check whether ProcessInstance implements MemoryView < > + Process < > + VirtualTranslate < >.

If this check returns true, it is safe to run consuming conversion operations.

Source

pub fn into_impl_virtualtranslate( self, ) -> Option<impl MemoryView + Process + VirtualTranslate + 'cglue_a>
where ProcessInstanceFinalWithVirtualTranslate<'cglue_a, CGlueInst, CGlueCtx>: 'cglue_a + MemoryView + Process + VirtualTranslate,

Retrieve a final ProcessInstance variant that implements MemoryView < > + Process < > + VirtualTranslate < >.

This consumes the ProcessInstance, and outputs Some(impl MemoryView < > + Process < > + VirtualTranslate < >), if all types are present.

Source

pub fn cast_impl_virtualtranslate( self, ) -> Option<ProcessInstanceWithVirtualTranslate<'cglue_a, CGlueInst, CGlueCtx>>
where ProcessInstanceWithVirtualTranslate<'cglue_a, CGlueInst, CGlueCtx>: 'cglue_a + MemoryView + Process + VirtualTranslate,

Retrieve a concrete ProcessInstance variant that implements MemoryView < > + Process < > + VirtualTranslate < >.

This consumes the ProcessInstance, and outputs Some(impl MemoryView < > + Process < > + VirtualTranslate < >), if all types are present. It is possible to cast this type back with the From implementation.

Source

pub fn as_mut_impl_virtualtranslate<'b>( &'b mut self, ) -> Option<&'b mut (impl MemoryView + Process + VirtualTranslate + 'cglue_a)>
where ProcessInstanceWithVirtualTranslate<'cglue_a, CGlueInst, CGlueCtx>: 'cglue_a + MemoryView + Process + VirtualTranslate,

Retrieve mutable reference to a concrete ProcessInstance variant that implements MemoryView < > + Process < > + VirtualTranslate < >.

Source

pub fn as_ref_impl_virtualtranslate<'b>( &'b self, ) -> Option<&'b (impl MemoryView + Process + VirtualTranslate + 'cglue_a)>
where ProcessInstanceWithVirtualTranslate<'cglue_a, CGlueInst, CGlueCtx>: 'cglue_a + MemoryView + Process + VirtualTranslate,

Retrieve immutable reference to a concrete ProcessInstance variant that implements MemoryView < > + Process < > + VirtualTranslate < >.

Trait Implementations§

Source§

impl<'cglue_a, CGlueInst, CGlueCtx> From<(CGlueInst, CGlueCtx)> for ProcessInstance<'cglue_a, CGlueInst, CGlueCtx>
where CGlueInst: Deref, CGlueCtx: ContextBounds, ProcessInstance<'cglue_a, CGlueInst, CGlueCtx>: From<ProcessInstanceContainer<CGlueInst, CGlueCtx>>, ProcessInstanceContainer<CGlueInst, CGlueCtx>: CGlueObjBase, &'cglue_a MemoryViewVtbl<'cglue_a, ProcessInstanceContainer<CGlueInst, CGlueCtx>>: 'cglue_a + Default, &'cglue_a ProcessVtbl<'cglue_a, ProcessInstanceContainer<CGlueInst, CGlueCtx>>: 'cglue_a + Default,

Source§

fn from( _: (CGlueInst, CGlueCtx), ) -> ProcessInstance<'cglue_a, CGlueInst, CGlueCtx>

Converts to this type from the input type.
Source§

impl<'cglue_a, CGlueT, CGlueCtx> From<(CGlueT, CGlueCtx)> for ProcessInstance<'cglue_a, CBox<'cglue_a, CGlueT>, CGlueCtx>
where CGlueCtx: ContextBounds, ProcessInstance<'cglue_a, CBox<'cglue_a, CGlueT>, CGlueCtx>: From<(CBox<'cglue_a, CGlueT>, CGlueCtx)>, ProcessInstanceContainer<CBox<'cglue_a, CGlueT>, CGlueCtx>: CGlueObjBase, &'cglue_a MemoryViewVtbl<'cglue_a, ProcessInstanceContainer<CBox<'cglue_a, CGlueT>, CGlueCtx>>: 'cglue_a + Default, &'cglue_a ProcessVtbl<'cglue_a, ProcessInstanceContainer<CBox<'cglue_a, CGlueT>, CGlueCtx>>: 'cglue_a + Default,

Source§

fn from( _: (CGlueT, CGlueCtx), ) -> ProcessInstance<'cglue_a, CBox<'cglue_a, CGlueT>, CGlueCtx>

Converts to this type from the input type.
Source§

impl<'cglue_a, CGlueInst> From<CGlueInst> for ProcessInstance<'cglue_a, CGlueInst, PhantomData<c_void>>
where CGlueInst: Deref, ProcessInstance<'cglue_a, CGlueInst, PhantomData<c_void>>: From<(CGlueInst, PhantomData<c_void>)>, ProcessInstanceContainer<CGlueInst, PhantomData<c_void>>: CGlueObjBase, &'cglue_a MemoryViewVtbl<'cglue_a, ProcessInstanceContainer<CGlueInst, PhantomData<c_void>>>: 'cglue_a + Default, &'cglue_a ProcessVtbl<'cglue_a, ProcessInstanceContainer<CGlueInst, PhantomData<c_void>>>: 'cglue_a + Default,

Source§

fn from( instance: CGlueInst, ) -> ProcessInstance<'cglue_a, CGlueInst, PhantomData<c_void>>

Converts to this type from the input type.
Source§

impl<'cglue_a, CGlueT> From<CGlueT> for ProcessInstance<'cglue_a, CBox<'cglue_a, CGlueT>, PhantomData<c_void>>
where ProcessInstance<'cglue_a, CBox<'cglue_a, CGlueT>, PhantomData<c_void>>: From<(CBox<'cglue_a, CGlueT>, PhantomData<c_void>)>, &'cglue_a MemoryViewVtbl<'cglue_a, ProcessInstanceContainer<CBox<'cglue_a, CGlueT>, PhantomData<c_void>>>: 'cglue_a + Default, &'cglue_a ProcessVtbl<'cglue_a, ProcessInstanceContainer<CBox<'cglue_a, CGlueT>, PhantomData<c_void>>>: 'cglue_a + Default,

Source§

fn from( instance: CGlueT, ) -> ProcessInstance<'cglue_a, CBox<'cglue_a, CGlueT>, PhantomData<c_void>>

Converts to this type from the input type.
Source§

impl<'cglue_a, CGlueInst, CGlueCtx> From<ProcessInstanceContainer<CGlueInst, CGlueCtx>> for ProcessInstance<'cglue_a, CGlueInst, CGlueCtx>
where CGlueInst: Deref, CGlueCtx: ContextBounds, ProcessInstanceContainer<CGlueInst, CGlueCtx>: CGlueObjBase, <CGlueInst as Deref>::Target: ProcessInstanceVtableFiller<'cglue_a, CGlueInst, CGlueCtx>, &'cglue_a MemoryViewVtbl<'cglue_a, ProcessInstanceContainer<CGlueInst, CGlueCtx>>: 'cglue_a + Default, &'cglue_a ProcessVtbl<'cglue_a, ProcessInstanceContainer<CGlueInst, CGlueCtx>>: 'cglue_a + Default,

Source§

fn from( container: ProcessInstanceContainer<CGlueInst, CGlueCtx>, ) -> ProcessInstance<'cglue_a, CGlueInst, CGlueCtx>

Converts to this type from the input type.
Source§

impl<'cglue_a, CGlueInst, CGlueCtx> From<ProcessInstanceWithVirtualTranslate<'cglue_a, CGlueInst, CGlueCtx>> for ProcessInstance<'cglue_a, CGlueInst, CGlueCtx>
where CGlueCtx: ContextBounds, ProcessInstanceContainer<CGlueInst, CGlueCtx>: CGlueObjBase,

Source§

fn from( input: ProcessInstanceWithVirtualTranslate<'cglue_a, CGlueInst, CGlueCtx>, ) -> ProcessInstance<'cglue_a, CGlueInst, CGlueCtx>

Converts to this type from the input type.
Source§

impl<CGlueInst, CGlueCtx> GetContainer for ProcessInstance<'_, CGlueInst, CGlueCtx>
where CGlueInst: Deref, CGlueCtx: ContextBounds, ProcessInstanceContainer<CGlueInst, CGlueCtx>: CGlueObjBase,

Source§

type ContType = ProcessInstanceContainer<CGlueInst, CGlueCtx>

Source§

fn ccont_ref( &self, ) -> &<ProcessInstance<'_, CGlueInst, CGlueCtx> as GetContainer>::ContType

Source§

fn ccont_mut( &mut self, ) -> &mut <ProcessInstance<'_, CGlueInst, CGlueCtx> as GetContainer>::ContType

Source§

fn into_ccont( self, ) -> <ProcessInstance<'_, CGlueInst, CGlueCtx> as GetContainer>::ContType

Source§

fn build_with_ccont( &self, container: <ProcessInstance<'_, CGlueInst, CGlueCtx> as GetContainer>::ContType, ) -> ProcessInstance<'_, CGlueInst, CGlueCtx>

Source§

impl<'cglue_a, CGlueInst, CGlueCtx> GetStaticEquivalent_ for ProcessInstance<'cglue_a, CGlueInst, CGlueCtx>
where CGlueInst: 'cglue_a + StableAbi, CGlueCtx: ContextBounds + StableAbi, ProcessInstanceContainer<CGlueInst, CGlueCtx>: CGlueObjBase,

Source§

type StaticEquivalent = _static_ProcessInstance<'static, <CGlueInst as GetStaticEquivalent_>::StaticEquivalent, <CGlueCtx as GetStaticEquivalent_>::StaticEquivalent>

Source§

impl<'cglue_a, CGlueInst, CGlueCtx> GetVtbl<MemoryViewVtbl<'cglue_a, ProcessInstanceContainer<CGlueInst, CGlueCtx>>> for ProcessInstance<'cglue_a, CGlueInst, CGlueCtx>
where CGlueCtx: ContextBounds, ProcessInstanceContainer<CGlueInst, CGlueCtx>: CGlueObjBase,

Source§

fn get_vtbl( &self, ) -> &MemoryViewVtbl<'cglue_a, ProcessInstanceContainer<CGlueInst, CGlueCtx>>

Source§

impl<'cglue_a, CGlueInst, CGlueCtx> GetVtbl<ProcessVtbl<'cglue_a, ProcessInstanceContainer<CGlueInst, CGlueCtx>>> for ProcessInstance<'cglue_a, CGlueInst, CGlueCtx>
where CGlueCtx: ContextBounds, ProcessInstanceContainer<CGlueInst, CGlueCtx>: CGlueObjBase,

Source§

fn get_vtbl( &self, ) -> &ProcessVtbl<'cglue_a, ProcessInstanceContainer<CGlueInst, CGlueCtx>>

Source§

impl<'cglue_a, CGlueInst, CGlueCtx> Opaquable for ProcessInstance<'cglue_a, CGlueInst, CGlueCtx>
where CGlueInst: Opaquable, CGlueCtx: ContextBounds, ProcessInstanceContainer<CGlueInst, CGlueCtx>: CGlueObjBase, ProcessInstanceContainer<<CGlueInst as Opaquable>::OpaqueTarget, CGlueCtx>: CGlueObjBase,

Convert into opaque object.

This is the prerequisite for using underlying trait implementations.

Source§

type OpaqueTarget = ProcessInstance<'cglue_a, <CGlueInst as Opaquable>::OpaqueTarget, CGlueCtx>

Source§

fn into_opaque(self) -> Self::OpaqueTarget

Transform self into an opaque version of the trait object. Read more
Source§

impl<'cglue_a, CGlueInst, CGlueCtx> StableAbi for ProcessInstance<'cglue_a, CGlueInst, CGlueCtx>
where CGlueInst: 'cglue_a + StableAbi, CGlueCtx: ContextBounds + StableAbi, ProcessInstanceContainer<CGlueInst, CGlueCtx>: CGlueObjBase,

Source§

const LAYOUT: &'static TypeLayout

The layout of the type provided by implementors.
Source§

type IsNonZeroType = False

Whether this type has a single invalid bit-pattern. Read more
Source§

const ABI_CONSTS: AbiConsts = _

const-equivalents of the associated types.

Auto Trait Implementations§

§

impl<'cglue_a, CGlueInst, CGlueCtx> Freeze for ProcessInstance<'cglue_a, CGlueInst, CGlueCtx>
where CGlueInst: Freeze, CGlueCtx: Freeze,

§

impl<'cglue_a, CGlueInst, CGlueCtx> RefUnwindSafe for ProcessInstance<'cglue_a, CGlueInst, CGlueCtx>
where CGlueInst: RefUnwindSafe, CGlueCtx: RefUnwindSafe,

§

impl<'cglue_a, CGlueInst, CGlueCtx> Send for ProcessInstance<'cglue_a, CGlueInst, CGlueCtx>
where CGlueInst: Send + Sync,

§

impl<'cglue_a, CGlueInst, CGlueCtx> Sync for ProcessInstance<'cglue_a, CGlueInst, CGlueCtx>
where CGlueInst: Sync,

§

impl<'cglue_a, CGlueInst, CGlueCtx> Unpin for ProcessInstance<'cglue_a, CGlueInst, CGlueCtx>
where CGlueInst: Unpin, CGlueCtx: Unpin,

§

impl<'cglue_a, CGlueInst, CGlueCtx> UnwindSafe for ProcessInstance<'cglue_a, CGlueInst, CGlueCtx>
where CGlueInst: UnwindSafe + RefUnwindSafe, CGlueCtx: UnwindSafe + RefUnwindSafe,

Blanket Implementations§

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> 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, F> From2<T> for F
where T: Into<F>,

Source§

fn from2(other: T) -> F

Source§

impl<T> GetWithMetadata for T

Source§

type ForSelf = WithMetadata_<T, T>

This is always WithMetadata_<Self, Self>
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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<S> ROExtAcc for S

Source§

fn f_get<F>(&self, offset: FieldOffset<S, F, Aligned>) -> &F

Gets a reference to a field, determined by offset. Read more
Source§

fn f_get_mut<F>(&mut self, offset: FieldOffset<S, F, Aligned>) -> &mut F

Gets a muatble reference to a field, determined by offset. Read more
Source§

fn f_get_ptr<F, A>(&self, offset: FieldOffset<S, F, A>) -> *const F

Gets a const pointer to a field, the field is determined by offset. Read more
Source§

fn f_get_mut_ptr<F, A>(&mut self, offset: FieldOffset<S, F, A>) -> *mut F

Gets a mutable pointer to a field, determined by offset. Read more
Source§

impl<S> ROExtOps<Aligned> for S

Source§

fn f_replace<F>(&mut self, offset: FieldOffset<S, F, Aligned>, value: F) -> F

Replaces a field (determined by offset) with value, returning the previous value of the field. Read more
Source§

fn f_swap<F>(&mut self, offset: FieldOffset<S, F, Aligned>, right: &mut S)

Swaps a field (determined by offset) with the same field in right. Read more
Source§

fn f_get_copy<F>(&self, offset: FieldOffset<S, F, Aligned>) -> F
where F: Copy,

Gets a copy of a field (determined by offset). The field is determined by offset. Read more
Source§

impl<S> ROExtOps<Unaligned> for S

Source§

fn f_replace<F>(&mut self, offset: FieldOffset<S, F, Unaligned>, value: F) -> F

Replaces a field (determined by offset) with value, returning the previous value of the field. Read more
Source§

fn f_swap<F>(&mut self, offset: FieldOffset<S, F, Unaligned>, right: &mut S)

Swaps a field (determined by offset) with the same field in right. Read more
Source§

fn f_get_copy<F>(&self, offset: FieldOffset<S, F, Unaligned>) -> F
where F: Copy,

Gets a copy of a field (determined by offset). The field is determined by offset. Read more
Source§

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

Source§

fn eq_id(&self, other: &Self) -> bool

Compares the address of self with the address of other. Read more
Source§

fn piped<F, U>(self, f: F) -> U
where F: FnOnce(Self) -> U, Self: Sized,

Emulates the pipeline operator, allowing method syntax in more places. Read more
Source§

fn piped_ref<'a, F, U>(&'a self, f: F) -> U
where F: FnOnce(&'a Self) -> U,

The same as piped except that the function takes &Self Useful for functions that take &Self instead of Self. Read more
Source§

fn piped_mut<'a, F, U>(&'a mut self, f: F) -> U
where F: FnOnce(&'a mut Self) -> U,

The same as piped, except that the function takes &mut Self. Useful for functions that take &mut Self instead of Self.
Source§

fn mutated<F>(self, f: F) -> Self
where F: FnOnce(&mut Self), Self: Sized,

Mutates self using a closure taking self by mutable reference, passing it along the method chain. Read more
Source§

fn observe<F>(self, f: F) -> Self
where F: FnOnce(&Self), Self: Sized,

Observes the value of self, passing it along unmodified. Useful in long method chains. Read more
Source§

fn into_<T>(self) -> T
where Self: Into<T>,

Performs a conversion with Into. using the turbofish .into_::<_>() syntax. Read more
Source§

fn as_ref_<T>(&self) -> &T
where Self: AsRef<T>, T: ?Sized,

Performs a reference to reference conversion with AsRef, using the turbofish .as_ref_::<_>() syntax. Read more
Source§

fn as_mut_<T>(&mut self) -> &mut T
where Self: AsMut<T>, T: ?Sized,

Performs a mutable reference to mutable reference conversion with AsMut, using the turbofish .as_mut_::<_>() syntax. Read more
Source§

fn drop_(self)
where Self: Sized,

Drops self using method notation. Alternative to std::mem::drop. Read more
Source§

impl<This> TransmuteElement for This
where This: ?Sized,

Source§

unsafe fn transmute_element<T>(self) -> Self::TransmutedPtr
where Self: CanTransmuteElement<T>,

Transmutes the element type of this pointer.. Read more
Source§

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

Source§

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>,

Source§

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.
Source§

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

Source§

type Type = T

This is always Self.
Source§

fn into_type(self) -> Self::Type
where Self: Sized, Self::Type: Sized,

Converts a value back to the original type.
Source§

fn as_type(&self) -> &Self::Type

Converts a reference back to the original type.
Source§

fn as_type_mut(&mut self) -> &mut Self::Type

Converts a mutable reference back to the original type.
Source§

fn into_type_box(self: Box<Self>) -> Box<Self::Type>

Converts a box back to the original type.
Source§

fn into_type_arc(this: Arc<Self>) -> Arc<Self::Type>

Converts an Arc back to the original type. Read more
Source§

fn into_type_rc(this: Rc<Self>) -> Rc<Self::Type>

Converts an Rc back to the original type. Read more
Source§

fn from_type(this: Self::Type) -> Self
where Self: Sized, Self::Type: Sized,

Converts a value back to the original type.
Source§

fn from_type_ref(this: &Self::Type) -> &Self

Converts a reference back to the original type.
Source§

fn from_type_mut(this: &mut Self::Type) -> &mut Self

Converts a mutable reference back to the original type.
Source§

fn from_type_box(this: Box<Self::Type>) -> Box<Self>

Converts a box back to the original type.
Source§

fn from_type_arc(this: Arc<Self::Type>) -> Arc<Self>

Converts an Arc back to the original type.
Source§

fn from_type_rc(this: Rc<Self::Type>) -> Rc<Self>

Converts an Rc back to the original type.
Source§

impl<T> GenericTypeBounds for T
where T: StableAbi,

Source§

impl<T> Opaque for T
where T: Opaquable<OpaqueTarget = T>,