[][src]Trait rebound::reflect::Reflected

pub trait Reflected {
    type Meta: Copy = ();
    pub fn name() -> String;
pub unsafe fn assemble(meta: *mut Self::Meta, ptr: *mut ()) -> *mut Self;
pub fn disassemble(&self) -> (Self::Meta, *mut ());
pub unsafe fn init(); pub fn assoc_fns() -> Vec<AssocFn> { ... }
pub fn assoc_consts() -> Vec<AssocConst> { ... } }

A trait representing any reflected Type. Supports operations common to all Types, such as retrieving its qualified name or impl information.

Associated Types

type Meta: Copy = ()[src]

The type of any meta-information required to get back a pointer to this type, if it is unsized

Loading content...

Required methods

pub fn name() -> String[src]

Get the qualified name of this Type

pub unsafe fn assemble(meta: *mut Self::Meta, ptr: *mut ()) -> *mut Self[src]

Internal Function used to create a pointer to this type from Metadata and a type-erased pointer.

Safety

This function may perform raw pointer dereferences, or other unsafe operations, at will. The passed meta and ptr must be valid pointers that originated as the type to assemble.

pub fn disassemble(&self) -> (Self::Meta, *mut ())[src]

Internal Function used to get the metadata and a type-erased pointer for an instance of this Type.

pub unsafe fn init()[src]

Internal Function used to initialize this Type, making it accessible by name and ready for use in reflection.

Safety

Should only ever be called once during a single execution of the program, and should not be called by consumers of this library.

Loading content...

Provided methods

pub fn assoc_fns() -> Vec<AssocFn>[src]

Get all the associated functions for this Type that rebound is aware of

pub fn assoc_consts() -> Vec<AssocConst>[src]

Get all the associated constants for this Type that rebound is aware of

Loading content...

Implementations on Foreign Types

impl Reflected for u8[src]

impl Reflected for u16[src]

impl Reflected for u32[src]

impl Reflected for u64[src]

impl Reflected for u128[src]

impl Reflected for usize[src]

impl Reflected for i8[src]

impl Reflected for i16[src]

impl Reflected for i32[src]

impl Reflected for i64[src]

impl Reflected for i128[src]

impl Reflected for isize[src]

impl Reflected for f32[src]

impl Reflected for f64[src]

impl Reflected for char[src]

impl Reflected for bool[src]

impl Reflected for str[src]

type Meta = usize

impl Reflected for ()[src]

impl<T0> Reflected for (T0,) where
    T0: Reflected
[src]

impl<T0, T1> Reflected for (T0, T1) where
    T0: Reflected,
    T1: Reflected
[src]

impl<T0, T1, T2> Reflected for (T0, T1, T2) where
    T0: Reflected,
    T1: Reflected,
    T2: Reflected
[src]

impl<T: Reflected, const N: usize> Reflected for [T; N][src]

impl<T: Reflected> Reflected for [T][src]

type Meta = usize

impl<T: ?Sized + Reflected> Reflected for *const T[src]

impl<T: ?Sized + Reflected> Reflected for *mut T[src]

impl<T: ?Sized + Reflected> Reflected for &T[src]

impl<T: ?Sized + Reflected> Reflected for &mut T[src]

impl<T: Reflected> Reflected for fn() -> T[src]

impl<T: Reflected, A0: Reflected> Reflected for fn(_: A0) -> T[src]

impl Reflected for ![src]

impl Reflected for Layout[src]

impl Reflected for LayoutError[src]

impl Reflected for EscapeDebug[src]

impl Reflected for EscapeDefault[src]

impl Reflected for EscapeUnicode[src]

impl Reflected for ToLowercase[src]

impl Reflected for ToUppercase[src]

impl<I: Reflected> Reflected for Copied<I>[src]

impl<I: Reflected + Iterator<Item: IntoIterator>> Reflected for Flatten<I>[src]

impl<I: Reflected, U: Reflected + IntoIterator, F: Reflected> Reflected for FlatMap<I, U, F>[src]

impl<A: Reflected, B: Reflected> Reflected for Chain<A, B>[src]

impl<I: Reflected, F: Reflected> Reflected for Map<I, F>[src]

impl<I: Reflected, P: Reflected> Reflected for Filter<I, P>[src]

impl<T: Reflected + ?Sized> Reflected for PhantomData<T>[src]

impl<T: ?Sized + Reflected> Reflected for ManuallyDrop<T>[src]

type Meta = T::Meta

impl Reflected for IntErrorKind[src]

impl Reflected for ParseIntError[src]

impl Reflected for NonZeroU8[src]

impl Reflected for NonZeroU32[src]

impl Reflected for NonZeroU64[src]

impl Reflected for NonZeroU128[src]

impl Reflected for NonZeroUsize[src]

impl Reflected for NonZeroI8[src]

impl Reflected for NonZeroI16[src]

impl Reflected for NonZeroI32[src]

impl Reflected for NonZeroI64[src]

impl Reflected for NonZeroI128[src]

impl Reflected for NonZeroIsize[src]

impl Reflected for NonZeroU16[src]

impl<Idx: Reflected> Reflected for Range<Idx>[src]

impl<T: Reflected> Reflected for Option<T>[src]

impl<A: Reflected> Reflected for IntoIter<A>[src]

impl<T: Reflected + ?Sized> Reflected for Unique<T>[src]

impl<T: Reflected + ?Sized> Reflected for NonNull<T>[src]

impl<T: Reflected, E: Reflected> Reflected for Result<T, E>[src]

impl<'a, T: Reflected + 'a> Reflected for Chunks<'_, T>[src]

impl<'a, T: Reflected + 'a> Reflected for ChunksExact<'_, T>[src]

impl<'a, T: Reflected + 'a> Reflected for ChunksExactMut<'_, T>[src]

impl<'a, T: Reflected + 'a> Reflected for ChunksMut<'_, T>[src]

impl<'a, T: Reflected + 'a> Reflected for Iter<'_, T>[src]

impl<'a, T: Reflected + 'a> Reflected for IterMut<'_, T>[src]

impl<'a, T: Reflected + 'a> Reflected for RChunks<'_, T>[src]

impl<'a, T: Reflected + 'a> Reflected for RChunksExact<'_, T>[src]

impl<'a, T: Reflected + 'a> Reflected for RChunksExactMut<'_, T>[src]

impl<'a, T: Reflected + 'a> Reflected for RChunksMut<'_, T>[src]

impl<'a, T: Reflected + 'a> Reflected for Windows<'_, T>[src]

impl<'a, T: Reflected + 'a, P: Reflected + FnMut(&T) -> bool> Reflected for Split<'_, T, P>[src]

impl<'a> Reflected for Bytes<'_>[src]

impl<'a> Reflected for CharIndices<'_>[src]

impl<'a> Reflected for Chars<'_>[src]

impl<'a> Reflected for EncodeUtf16<'_>[src]

impl<'a> Reflected for EscapeDebug<'_>[src]

impl<'a> Reflected for EscapeDefault<'_>[src]

impl<'a> Reflected for EscapeUnicode<'_>[src]

impl<'a> Reflected for Lines<'_>[src]

impl<'a> Reflected for SplitAsciiWhitespace<'_>[src]

impl<'a> Reflected for SplitWhitespace<'_>[src]

impl<T: Reflected + ?Sized, A: Reflected + Allocator> Reflected for Box<T, A>[src]

impl Reflected for Global[src]

impl<T: Reflected, A: Reflected + Allocator> Reflected for RawVec<T, A>[src]

impl Reflected for String[src]

impl<T: Reflected, A: Reflected + Allocator> Reflected for Vec<T, A>[src]

Loading content...

Implementors

Loading content...