Trait abi_stable::prefix_type::PrefixTypeTrait

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

    const PT_LAYOUT: &'static PTStructLayout;
    const PT_FIELD_ACCESSIBILITY: FieldAccessibility;

    // Provided method
    fn leak_into_prefix(self) -> Self::PrefixRef { ... }
}
Expand description

For types deriving StableAbi with #[sabi(kind(Prefix(..)))].

§Safety

This trait must be implemented by the StableAbi derive macro.

Required Associated Types§

source

type PrefixFields

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

Those structs are usually named with a _Prefix suffix.

source

type PrefixRef: PrefixRefTrait<PtrTarget = WithMetadata_<Self::PrefixFields, Self::PrefixFields>, PrefixFields = Self::PrefixFields>

A pointer to Self::PrefixFields, generally wraps a PrefixRef<Self::PrefixFields>.

Those pointer types are usually named with a _Ref suffix.

Required Associated Constants§

source

const PT_LAYOUT: &'static PTStructLayout

Describes the layout of the struct,exclusively for use in error messages.

source

const PT_FIELD_ACCESSIBILITY: FieldAccessibility

A bit array,where each nth bit represents whether the nth field is accessible.

Provided Methods§

source

fn leak_into_prefix(self) -> Self::PrefixRef

Converts Self to Self::PrefixRef,leaking it in the process.

§Warning

You must be careful when calling this function, since this leak is ignored by miri .

Object Safety§

This trait is not object safe.

Implementors§