Trait referent::Referent
[−]
[src]
pub trait Referent { type Data; type Meta: Copy; unsafe fn assemble(data: *const Self::Data, meta: Self::Meta) -> *const Self; fn disassemble(fatp: *const Self) -> (*const Self::Data, Self::Meta); unsafe fn assemble_mut(data: *mut Self::Data, meta: Self::Meta) -> *mut Self { ... } fn disassemble_mut(fatp: *mut Self) -> (*mut Self::Data, Self::Meta) { ... } fn size_of_val(meta: Self::Meta) -> usize { ... } fn align_of_val(meta: Self::Meta) -> usize { ... } }
A trait that is implemented for all types except trait objects, for which it can be derived with the derive_referent!
macro on nightly. Provides functions to split apart/reconstruct a fat pointer into/from its components.
Associated Types
Required Methods
unsafe fn assemble(data: *const Self::Data, meta: Self::Meta) -> *const Self
Make a reference from its constituent parts.
fn disassemble(fatp: *const Self) -> (*const Self::Data, Self::Meta)
Break a reference down into its constituent parts.
Provided Methods
unsafe fn assemble_mut(data: *mut Self::Data, meta: Self::Meta) -> *mut Self
fn disassemble_mut(fatp: *mut Self) -> (*mut Self::Data, Self::Meta)
fn size_of_val(meta: Self::Meta) -> usize
fn align_of_val(meta: Self::Meta) -> usize
Implementors
impl<T> Referent for T
impl<T> Referent for [T]
impl Referent for str