#[repr(C)]
pub struct IntoCpuState<'cglue_a, CGlueInst: 'cglue_a, CGlueCtx: ContextBounds>
where IntoCpuStateContainer<CGlueInst, CGlueCtx>: CGlueObjBase,
{ /* private fields */ }
Expand description

Trait group potentially implementing :: cglue :: ext :: core :: clone :: Clone < > + CpuState < > 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 IntoCpuState 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: ContextBounds> IntoCpuState<'cglue_a, CGlueInst, CGlueCtx>
where IntoCpuStateContainer<CGlueInst, CGlueCtx>: CGlueObjBase, &'cglue_a CloneVtbl<'cglue_a, IntoCpuStateContainer<CGlueInst, CGlueCtx>>: 'cglue_a + Default, &'cglue_a CpuStateVtbl<'cglue_a, IntoCpuStateContainer<CGlueInst, CGlueCtx>>: 'cglue_a + Default,

source

pub fn new(instance: CGlueInst, context: CGlueCtx) -> Self
where &'cglue_a CloneVtbl<'cglue_a, IntoCpuStateContainer<CGlueInst, CGlueCtx>>: 'cglue_a + Default, &'cglue_a CpuStateVtbl<'cglue_a, IntoCpuStateContainer<CGlueInst, CGlueCtx>>: 'cglue_a + Default,

Create new instance of IntoCpuState.

source§

impl<'cglue_a, CGlueT> IntoCpuState<'cglue_a, CBox<'cglue_a, CGlueT>, NoContext>

source

pub fn new_boxed(this: CGlueT) -> Self
where &'cglue_a CloneVtbl<'cglue_a, IntoCpuStateContainer<CBox<'cglue_a, CGlueT>, NoContext>>: 'cglue_a + Default, &'cglue_a CpuStateVtbl<'cglue_a, IntoCpuStateContainer<CBox<'cglue_a, CGlueT>, NoContext>>: 'cglue_a + Default,

Create new instance of IntoCpuState.

instance will be moved onto heap.

Trait Implementations§

source§

impl<'cglue_a, CGlueInst, CGlueCtx: ContextBounds> Clone for IntoCpuState<'cglue_a, CGlueInst, CGlueCtx>
where IntoCpuStateContainer<CGlueInst, CGlueCtx>: CGlueObjBase, Self: CloneExt,

source§

fn clone(&self) -> Self

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<'cglue_a, CGlueInst: Deref, CGlueCtx: ContextBounds> From<(CGlueInst, CGlueCtx)> for IntoCpuState<'cglue_a, CGlueInst, CGlueCtx>
where Self: From<IntoCpuStateContainer<CGlueInst, CGlueCtx>>, IntoCpuStateContainer<CGlueInst, CGlueCtx>: CGlueObjBase, &'cglue_a CloneVtbl<'cglue_a, IntoCpuStateContainer<CGlueInst, CGlueCtx>>: 'cglue_a + Default, &'cglue_a CpuStateVtbl<'cglue_a, IntoCpuStateContainer<CGlueInst, CGlueCtx>>: 'cglue_a + Default,

source§

fn from((instance, context): (CGlueInst, CGlueCtx)) -> Self

Converts to this type from the input type.
source§

impl<'cglue_a, CGlueT, CGlueCtx: ContextBounds> From<(CGlueT, CGlueCtx)> for IntoCpuState<'cglue_a, CBox<'cglue_a, CGlueT>, CGlueCtx>
where Self: From<(CBox<'cglue_a, CGlueT>, CGlueCtx)>, IntoCpuStateContainer<CBox<'cglue_a, CGlueT>, CGlueCtx>: CGlueObjBase, &'cglue_a CloneVtbl<'cglue_a, IntoCpuStateContainer<CBox<'cglue_a, CGlueT>, CGlueCtx>>: 'cglue_a + Default, &'cglue_a CpuStateVtbl<'cglue_a, IntoCpuStateContainer<CBox<'cglue_a, CGlueT>, CGlueCtx>>: 'cglue_a + Default,

source§

fn from((this, context): (CGlueT, CGlueCtx)) -> Self

Converts to this type from the input type.
source§

impl<'cglue_a, CGlueInst: Deref> From<CGlueInst> for IntoCpuState<'cglue_a, CGlueInst, NoContext>
where Self: From<(CGlueInst, NoContext)>, IntoCpuStateContainer<CGlueInst, NoContext>: CGlueObjBase, &'cglue_a CloneVtbl<'cglue_a, IntoCpuStateContainer<CGlueInst, NoContext>>: 'cglue_a + Default, &'cglue_a CpuStateVtbl<'cglue_a, IntoCpuStateContainer<CGlueInst, NoContext>>: 'cglue_a + Default,

source§

fn from(instance: CGlueInst) -> Self

Converts to this type from the input type.
source§

impl<'cglue_a, CGlueT> From<CGlueT> for IntoCpuState<'cglue_a, CBox<'cglue_a, CGlueT>, NoContext>
where Self: From<(CBox<'cglue_a, CGlueT>, NoContext)>, &'cglue_a CloneVtbl<'cglue_a, IntoCpuStateContainer<CBox<'cglue_a, CGlueT>, NoContext>>: 'cglue_a + Default, &'cglue_a CpuStateVtbl<'cglue_a, IntoCpuStateContainer<CBox<'cglue_a, CGlueT>, NoContext>>: 'cglue_a + Default,

source§

fn from(instance: CGlueT) -> Self

Converts to this type from the input type.
source§

impl<'cglue_a, CGlueInst: Deref, CGlueCtx: ContextBounds> From<IntoCpuStateContainer<CGlueInst, CGlueCtx>> for IntoCpuState<'cglue_a, CGlueInst, CGlueCtx>
where IntoCpuStateContainer<CGlueInst, CGlueCtx>: CGlueObjBase, CGlueInst::Target: IntoCpuStateVtableFiller<'cglue_a, CGlueInst, CGlueCtx>, &'cglue_a CloneVtbl<'cglue_a, IntoCpuStateContainer<CGlueInst, CGlueCtx>>: 'cglue_a + Default, &'cglue_a CpuStateVtbl<'cglue_a, IntoCpuStateContainer<CGlueInst, CGlueCtx>>: 'cglue_a + Default,

source§

fn from(container: IntoCpuStateContainer<CGlueInst, CGlueCtx>) -> Self

Converts to this type from the input type.
source§

impl<CGlueInst: Deref, CGlueCtx: ContextBounds> GetContainer for IntoCpuState<'_, CGlueInst, CGlueCtx>
where IntoCpuStateContainer<CGlueInst, CGlueCtx>: CGlueObjBase,

§

type ContType = IntoCpuStateContainer<CGlueInst, CGlueCtx>

source§

fn ccont_ref(&self) -> &Self::ContType

source§

fn ccont_mut(&mut self) -> &mut Self::ContType

source§

fn into_ccont(self) -> Self::ContType

source§

fn build_with_ccont(&self, container: Self::ContType) -> Self

source§

impl<'cglue_a, CGlueInst, CGlueCtx> GetStaticEquivalent_ for IntoCpuState<'cglue_a, CGlueInst, CGlueCtx>
where IntoCpuStateContainer<CGlueInst, CGlueCtx>: CGlueObjBase, CGlueInst: __StableAbi + 'cglue_a, CGlueCtx: __StableAbi + ContextBounds,

§

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

source§

impl<'cglue_a, CGlueInst, CGlueCtx: ContextBounds> GetVtbl<CloneVtbl<'cglue_a, IntoCpuStateContainer<CGlueInst, CGlueCtx>>> for IntoCpuState<'cglue_a, CGlueInst, CGlueCtx>
where IntoCpuStateContainer<CGlueInst, CGlueCtx>: CGlueObjBase,

source§

fn get_vtbl( &self ) -> &CloneVtbl<'cglue_a, IntoCpuStateContainer<CGlueInst, CGlueCtx>>

source§

impl<'cglue_a, CGlueInst, CGlueCtx: ContextBounds> GetVtbl<CpuStateVtbl<'cglue_a, IntoCpuStateContainer<CGlueInst, CGlueCtx>>> for IntoCpuState<'cglue_a, CGlueInst, CGlueCtx>
where IntoCpuStateContainer<CGlueInst, CGlueCtx>: CGlueObjBase,

source§

fn get_vtbl( &self ) -> &CpuStateVtbl<'cglue_a, IntoCpuStateContainer<CGlueInst, CGlueCtx>>

source§

impl<'cglue_a, CGlueInst: Opaquable, CGlueCtx: ContextBounds> Opaquable for IntoCpuState<'cglue_a, CGlueInst, CGlueCtx>
where IntoCpuStateContainer<CGlueInst, CGlueCtx>: CGlueObjBase, IntoCpuStateContainer<CGlueInst::OpaqueTarget, CGlueCtx>: CGlueObjBase,

Convert into opaque object.

This is the prerequisite for using underlying trait implementations.

§

type OpaqueTarget = IntoCpuState<'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 IntoCpuState<'cglue_a, CGlueInst, CGlueCtx>
where IntoCpuStateContainer<CGlueInst, CGlueCtx>: CGlueObjBase, CGlueInst: __StableAbi + 'cglue_a, CGlueCtx: __StableAbi + ContextBounds,

§

type IsNonZeroType = False

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

const LAYOUT: &'static TypeLayout = _

The layout of the type provided by implementors.
source§

const ABI_CONSTS: AbiConsts = _

const-equivalents of the associated types.

Auto Trait Implementations§

§

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

§

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

§

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

§

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

§

impl<'cglue_a, CGlueInst, CGlueCtx> UnwindSafe for IntoCpuState<'cglue_a, CGlueInst, CGlueCtx>
where CGlueCtx: UnwindSafe + RefUnwindSafe, CGlueInst: 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<'a, T> BorrowOwned<'a> for T
where T: 'a + Clone,

§

type ROwned = T

The owned type, stored in RCow::Owned
§

type RBorrowed = &'a T

The borrowed type, stored in RCow::Borrowed
source§

fn r_borrow( this: &'a <T as BorrowOwned<'a>>::ROwned ) -> <T as BorrowOwned<'a>>::RBorrowed

source§

fn r_to_owned( this: <T as BorrowOwned<'a>>::RBorrowed ) -> <T as BorrowOwned<'a>>::ROwned

source§

fn deref_borrowed(this: &<T as BorrowOwned<'a>>::RBorrowed) -> &T

source§

fn deref_owned(this: &<T as BorrowOwned<'a>>::ROwned) -> &T

source§

fn from_cow_borrow(this: &'a T) -> <T as BorrowOwned<'a>>::RBorrowed

source§

fn from_cow_owned(this: <T as ToOwned>::Owned) -> <T as BorrowOwned<'a>>::ROwned

source§

fn into_cow_borrow(this: <T as BorrowOwned<'a>>::RBorrowed) -> &'a T

source§

fn into_cow_owned(this: <T as BorrowOwned<'a>>::ROwned) -> <T as ToOwned>::Owned

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

§

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.

§

impl<S> ROExtAcc for S

§

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

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

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
§

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
§

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
§

impl<S> ROExtOps<Aligned> for S

§

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
§

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
§

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
§

impl<S> ROExtOps<Unaligned> for S

§

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
§

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
§

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
§

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

§

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

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

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
§

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
§

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

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
§

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
§

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

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

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
§

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
§

fn drop_(self)
where Self: Sized,

Drops self using method notation. Alternative to std::mem::drop. Read more
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<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>,

§

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

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

§

type Type = T

This is always Self.
§

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

Converts a value back to the original type.
§

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

Converts a reference back to the original type.
§

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

Converts a mutable reference back to the original type.
§

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

Converts a box back to the original type.
§

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

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

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

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

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

Converts a value back to the original type.
§

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

Converts a reference back to the original type.
§

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

Converts a mutable reference back to the original type.
§

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

Converts a box back to the original type.
§

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

Converts an Arc back to the original type.
§

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

Converts an Rc back to the original type.
source§

impl<T> ContextBounds for T
where T: 'static + Clone + Send + Sync + StableAbi,

source§

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

source§

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