Trait abi_stable::prefix_type::PrefixRefTrait [−][src]
pub unsafe trait PrefixRefTrait: Sized + ImmutableRef {
type PrefixFields: GetWithMetadata<ForSelf = Self::Target>;
const PREFIX_FIELDS: PointsToPrefixFields<Self, Self::PrefixFields>;
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.
Associated Types
type PrefixFields: GetWithMetadata<ForSelf = Self::Target>
type PrefixFields: GetWithMetadata<ForSelf = Self::Target>
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.
Associated Constants
const PREFIX_FIELDS: PointsToPrefixFields<Self, Self::PrefixFields>
const PREFIX_FIELDS: PointsToPrefixFields<Self, Self::PrefixFields>
A type used to prove that the This
type parameter in
PointsToPrefixFields<This, PF>
implements
PrefixRefTrait<PrefixFields = PF>
.
Provided methods
fn from_prefix_ref(this: PrefixRef<Self::PrefixFields>) -> Self
fn from_prefix_ref(this: PrefixRef<Self::PrefixFields>) -> Self
Converts a PrefixRef
to Self
fn to_prefix_ref(self) -> PrefixRef<Self::PrefixFields>
fn to_prefix_ref(self) -> PrefixRef<Self::PrefixFields>
Converts Self
to a PrefixRef