Struct abi_stable::sabi_trait::doc_examples::Doer_TO
source · #[repr(transparent)]pub struct Doer_TO<'lt, _ErasedPtr>where
_ErasedPtr: __GetPointerKind,{
pub obj: Doer_Backend<'lt, _ErasedPtr>,
/* private fields */
}
Expand description
The trait object for Doer.
There are extra methods on the obj
field.
Fields§
§obj: Doer_Backend<'lt, _ErasedPtr>
Implementations§
source§impl<'lt, _ErasedPtr> Doer_TO<'lt, _ErasedPtr>
impl<'lt, _ErasedPtr> Doer_TO<'lt, _ErasedPtr>
sourcepub fn from_ptr<_OrigPtr, Downcasting>(
ptr: _OrigPtr,
can_it_downcast: Downcasting,
) -> Selfwhere
_OrigPtr: CanTransmuteElement<(), TransmutedPtr = _ErasedPtr>,
_OrigPtr::PtrTarget: Doer + Sized + 'lt,
Doer_Interface: GetRObjectVTable<Downcasting, _OrigPtr::PtrTarget, _ErasedPtr, _OrigPtr>,
pub fn from_ptr<_OrigPtr, Downcasting>(
ptr: _OrigPtr,
can_it_downcast: Downcasting,
) -> Selfwhere
_OrigPtr: CanTransmuteElement<(), TransmutedPtr = _ErasedPtr>,
_OrigPtr::PtrTarget: Doer + Sized + 'lt,
Doer_Interface: GetRObjectVTable<Downcasting, _OrigPtr::PtrTarget, _ErasedPtr, _OrigPtr>,
Constructs this trait object from a pointer to a type that implements Doer
.
This method is automatically generated,
for more documentation you can look at
abi_stable::docs::sabi_trait_inherent
can_it_downcast
describes whether the trait object can be converted back into the original type or not.
Its possible values are TD_CanDowncast
and TD_Opaque
.
sourcepub fn from_sabi(obj: Doer_Backend<'lt, _ErasedPtr>) -> Self
pub fn from_sabi(obj: Doer_Backend<'lt, _ErasedPtr>) -> Self
Constructs this trait object from its underlying implementation.
This method is automatically generated,
for more documentation you can look at
abi_stable::docs::sabi_trait_inherent
sourcepub fn sabi_reborrow<'_sub>(&'_sub self) -> Doer_TO<'lt, RRef<'_sub, ()>>
pub fn sabi_reborrow<'_sub>(&'_sub self) -> Doer_TO<'lt, RRef<'_sub, ()>>
Reborrows this trait object to a reference-based trait object.
This method is automatically generated,
for more documentation you can look at
abi_stable::docs::sabi_trait_inherent
sourcepub fn sabi_reborrow_mut<'_sub>(
&'_sub mut self,
) -> Doer_TO<'lt, RMut<'_sub, ()>>
pub fn sabi_reborrow_mut<'_sub>( &'_sub mut self, ) -> Doer_TO<'lt, RMut<'_sub, ()>>
Reborrows this trait object to a mutable-reference-based trait object.
This method is automatically generated,
for more documentation you can look at
abi_stable::docs::sabi_trait_inherent
source§impl<'lt> Doer_TO<'lt, RBox<()>>
impl<'lt> Doer_TO<'lt, RBox<()>>
sourcepub fn from_value<_Self, Downcasting>(
ptr: _Self,
can_it_downcast: Downcasting,
) -> Selfwhere
_Self: Doer + 'lt,
Doer_Interface: GetRObjectVTable<Downcasting, _Self, RBox<()>, RBox<_Self>>,
pub fn from_value<_Self, Downcasting>(
ptr: _Self,
can_it_downcast: Downcasting,
) -> Selfwhere
_Self: Doer + 'lt,
Doer_Interface: GetRObjectVTable<Downcasting, _Self, RBox<()>, RBox<_Self>>,
Constructs this trait from a type that implements Doer
.
This method is automatically generated,
for more documentation you can look at
abi_stable::docs::sabi_trait_inherent
can_it_downcast
describes whether the trait object can be converted back into the original type or not.
Its possible values are TD_CanDowncast
and TD_Opaque
.
source§impl<'lt, '_sub> Doer_TO<'lt, RRef<'_sub, ()>>
impl<'lt, '_sub> Doer_TO<'lt, RRef<'_sub, ()>>
sourcepub const fn from_const<_Self, Downcasting>(
ptr: &'_sub _Self,
can_it_downcast: Downcasting,
) -> Selfwhere
_Self: Doer + 'lt,
Doer_Interface: GetRObjectVTable<Downcasting, _Self, RRef<'_sub, ()>, &'_sub _Self>,
pub const fn from_const<_Self, Downcasting>(
ptr: &'_sub _Self,
can_it_downcast: Downcasting,
) -> Selfwhere
_Self: Doer + 'lt,
Doer_Interface: GetRObjectVTable<Downcasting, _Self, RRef<'_sub, ()>, &'_sub _Self>,
Constructs this trait from a constant of a type that implements Doer
.
This method is automatically generated,
for more documentation you can look at
abi_stable::docs::sabi_trait_inherent
You can construct the vtable_for
parameter with [Doer_MV::VTABLE
].
can_it_downcast
describes whether the trait object can be converted back into the original type or not.
Its possible values are TD_CanDowncast
and TD_Opaque
.
Trait Implementations§
source§impl<'lt, _ErasedPtr> GetStaticEquivalent_ for Doer_TO<'lt, _ErasedPtr>
impl<'lt, _ErasedPtr> GetStaticEquivalent_ for Doer_TO<'lt, _ErasedPtr>
source§type StaticEquivalent = _static_Doer_TO<'static, <_ErasedPtr as GetStaticEquivalent_>::StaticEquivalent>
type StaticEquivalent = _static_Doer_TO<'static, <_ErasedPtr as GetStaticEquivalent_>::StaticEquivalent>
'static
equivalent of Self
source§impl<'lt, _ErasedPtr> StableAbi for Doer_TO<'lt, _ErasedPtr>
impl<'lt, _ErasedPtr> StableAbi for Doer_TO<'lt, _ErasedPtr>
source§type IsNonZeroType = <RObject<'lt, _ErasedPtr, Doer_Interface, VTable_Prefix<(), _ErasedPtr>> as StableAbi>::IsNonZeroType
type IsNonZeroType = <RObject<'lt, _ErasedPtr, Doer_Interface, VTable_Prefix<(), _ErasedPtr>> as StableAbi>::IsNonZeroType
source§const LAYOUT: &'static TypeLayout = _
const LAYOUT: &'static TypeLayout = _
source§const ABI_CONSTS: AbiConsts = _
const ABI_CONSTS: AbiConsts = _
const
-equivalents of the associated types.Auto Trait Implementations§
impl<'lt, _ErasedPtr> Freeze for Doer_TO<'lt, _ErasedPtr>where
_ErasedPtr: Freeze,
impl<'lt, _ErasedPtr> RefUnwindSafe for Doer_TO<'lt, _ErasedPtr>where
_ErasedPtr: RefUnwindSafe,
impl<'lt, _ErasedPtr> !Send for Doer_TO<'lt, _ErasedPtr>
impl<'lt, _ErasedPtr> !Sync for Doer_TO<'lt, _ErasedPtr>
impl<'lt, _ErasedPtr> !Unpin for Doer_TO<'lt, _ErasedPtr>
impl<'lt, _ErasedPtr> UnwindSafe for Doer_TO<'lt, _ErasedPtr>where
_ErasedPtr: UnwindSafe,
Blanket Implementations§
source§impl<T> AlignerFor<1> for T
impl<T> AlignerFor<1> for T
source§impl<T> AlignerFor<1024> for T
impl<T> AlignerFor<1024> for T
source§type Aligner = AlignTo1024<T>
type Aligner = AlignTo1024<T>
AlignTo*
type which aligns Self
to ALIGNMENT
.source§impl<T> AlignerFor<128> for T
impl<T> AlignerFor<128> for T
source§type Aligner = AlignTo128<T>
type Aligner = AlignTo128<T>
AlignTo*
type which aligns Self
to ALIGNMENT
.source§impl<T> AlignerFor<16> for T
impl<T> AlignerFor<16> for T
source§impl<T> AlignerFor<16384> for T
impl<T> AlignerFor<16384> for T
source§type Aligner = AlignTo16384<T>
type Aligner = AlignTo16384<T>
AlignTo*
type which aligns Self
to ALIGNMENT
.source§impl<T> AlignerFor<2> for T
impl<T> AlignerFor<2> for T
source§impl<T> AlignerFor<2048> for T
impl<T> AlignerFor<2048> for T
source§type Aligner = AlignTo2048<T>
type Aligner = AlignTo2048<T>
AlignTo*
type which aligns Self
to ALIGNMENT
.source§impl<T> AlignerFor<256> for T
impl<T> AlignerFor<256> for T
source§type Aligner = AlignTo256<T>
type Aligner = AlignTo256<T>
AlignTo*
type which aligns Self
to ALIGNMENT
.source§impl<T> AlignerFor<32> for T
impl<T> AlignerFor<32> for T
source§impl<T> AlignerFor<32768> for T
impl<T> AlignerFor<32768> for T
source§type Aligner = AlignTo32768<T>
type Aligner = AlignTo32768<T>
AlignTo*
type which aligns Self
to ALIGNMENT
.source§impl<T> AlignerFor<4> for T
impl<T> AlignerFor<4> for T
source§impl<T> AlignerFor<4096> for T
impl<T> AlignerFor<4096> for T
source§type Aligner = AlignTo4096<T>
type Aligner = AlignTo4096<T>
AlignTo*
type which aligns Self
to ALIGNMENT
.source§impl<T> AlignerFor<512> for T
impl<T> AlignerFor<512> for T
source§type Aligner = AlignTo512<T>
type Aligner = AlignTo512<T>
AlignTo*
type which aligns Self
to ALIGNMENT
.source§impl<T> AlignerFor<64> for T
impl<T> AlignerFor<64> for T
source§impl<T> AlignerFor<8> for T
impl<T> AlignerFor<8> for T
source§impl<T> AlignerFor<8192> for T
impl<T> AlignerFor<8192> for T
source§type Aligner = AlignTo8192<T>
type Aligner = AlignTo8192<T>
AlignTo*
type which aligns Self
to ALIGNMENT
.source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<S> ROExtAcc for S
impl<S> ROExtAcc for S
source§fn f_get<F>(&self, offset: FieldOffset<S, F, Aligned>) -> &F
fn f_get<F>(&self, offset: FieldOffset<S, F, Aligned>) -> &F
offset
. Read moresource§fn f_get_mut<F>(&mut self, offset: FieldOffset<S, F, Aligned>) -> &mut F
fn f_get_mut<F>(&mut self, offset: FieldOffset<S, F, Aligned>) -> &mut F
offset
. Read moresource§fn f_get_ptr<F, A>(&self, offset: FieldOffset<S, F, A>) -> *const F
fn f_get_ptr<F, A>(&self, offset: FieldOffset<S, F, A>) -> *const F
offset
. Read moresource§fn f_get_mut_ptr<F, A>(&mut self, offset: FieldOffset<S, F, A>) -> *mut F
fn f_get_mut_ptr<F, A>(&mut self, offset: FieldOffset<S, F, A>) -> *mut F
offset
. Read moresource§impl<S> ROExtOps<Aligned> for S
impl<S> ROExtOps<Aligned> for S
source§fn f_replace<F>(&mut self, offset: FieldOffset<S, F, Aligned>, value: F) -> F
fn f_replace<F>(&mut self, offset: FieldOffset<S, F, Aligned>, value: F) -> F
offset
) with value
,
returning the previous value of the field. Read moresource§fn f_get_copy<F>(&self, offset: FieldOffset<S, F, Aligned>) -> Fwhere
F: Copy,
fn f_get_copy<F>(&self, offset: FieldOffset<S, F, Aligned>) -> Fwhere
F: Copy,
source§impl<S> ROExtOps<Unaligned> for S
impl<S> ROExtOps<Unaligned> for S
source§fn f_replace<F>(&mut self, offset: FieldOffset<S, F, Unaligned>, value: F) -> F
fn f_replace<F>(&mut self, offset: FieldOffset<S, F, Unaligned>, value: F) -> F
offset
) with value
,
returning the previous value of the field. Read moresource§fn f_get_copy<F>(&self, offset: FieldOffset<S, F, Unaligned>) -> Fwhere
F: Copy,
fn f_get_copy<F>(&self, offset: FieldOffset<S, F, Unaligned>) -> Fwhere
F: Copy,
source§impl<T> SelfOps for Twhere
T: ?Sized,
impl<T> SelfOps for Twhere
T: ?Sized,
source§fn piped<F, U>(self, f: F) -> U
fn piped<F, U>(self, f: F) -> U
source§fn piped_ref<'a, F, U>(&'a self, f: F) -> Uwhere
F: FnOnce(&'a Self) -> U,
fn piped_ref<'a, F, U>(&'a self, f: F) -> Uwhere
F: FnOnce(&'a Self) -> U,
piped
except that the function takes &Self
Useful for functions that take &Self
instead of Self
. Read moresource§fn piped_mut<'a, F, U>(&'a mut self, f: F) -> Uwhere
F: FnOnce(&'a mut Self) -> U,
fn piped_mut<'a, F, U>(&'a mut self, f: F) -> Uwhere
F: FnOnce(&'a mut Self) -> U,
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
fn mutated<F>(self, f: F) -> Self
source§fn observe<F>(self, f: F) -> Self
fn observe<F>(self, f: F) -> Self
source§fn as_ref_<T>(&self) -> &T
fn as_ref_<T>(&self) -> &T
AsRef
,
using the turbofish .as_ref_::<_>()
syntax. Read more