Trait abi_stable::prefix_type::PrefixRefTrait

source ·
pub unsafe trait PrefixRefTrait: Sized + ImmutableRef<PtrTarget = WithMetadata_<Self::PrefixFields, Self::PrefixFields>> {
    type PrefixFields;

    // Provided methods
    fn from_prefix_ref(this: PrefixRef<Self::PrefixFields>) -> Self { ... }
    fn to_prefix_ref(self) -> PrefixRef<Self::PrefixFields> { ... }
}
Expand description

Marker trait for pointers to prefix field structs.

Generally prefix field structs are named with a _Prefix suffix, and have all the fields of some other struct up to the one with a #[sabi(last_prefix_field)] attribute.

§Safety

Self must either be PrefixRef<Self::PrefixFields>, or a #[repr(transparent)] wrapper around one.

Required Associated Types§

source

type PrefixFields

A struct that contains all the fields of some other struct up to the field annotated with #[sabi(last_prefix_field)] inclusive.

Those structs are usually named with a _Prefix suffix.

Provided Methods§

source

fn from_prefix_ref(this: PrefixRef<Self::PrefixFields>) -> Self

Converts a PrefixRef to Self

source

fn to_prefix_ref(self) -> PrefixRef<Self::PrefixFields>

Converts Self to a PrefixRef

Object Safety§

This trait is not object safe.

Implementors§

source§

impl PrefixRefTrait for Module_Ref

source§

impl<'borr, ErasedPtr, I> PrefixRefTrait for VTable_Ref<'borr, ErasedPtr, I>

source§

type PrefixFields = VTable_Prefix<'borr, ErasedPtr, I>

source§

impl<P> PrefixRefTrait for PrefixRef<P>

source§

impl<T: Copy> PrefixRefTrait for PhantModule_Ref<T>