[][src]Trait erasable::ErasablePtr

pub unsafe trait ErasablePtr {
    fn erase(this: Self) -> ErasedPtr;
unsafe fn unerase(this: ErasedPtr) -> Self; }

A (smart) pointer type that can be type-erased (making a thin pointer).

When implementing this trait, you should implement it for all Erasable pointee types.

Required methods

fn erase(this: Self) -> ErasedPtr

Turn this erasable pointer into an erased pointer.

To retrieve the original pointer, use unerase.

unsafe fn unerase(this: ErasedPtr) -> Self

Unerase this erased pointer.

Safety

The erased pointer must have been created by erase.

Loading content...

Implementations on Foreign Types

impl<T: ?Sized> ErasablePtr for NonNull<T> where
    T: Erasable
[src]

impl<T: ?Sized> ErasablePtr for Box<T> where
    T: Erasable
[src]

impl<T: ?Sized> ErasablePtr for Arc<T> where
    T: Erasable
[src]

impl<T: ?Sized> ErasablePtr for Rc<T> where
    T: Erasable
[src]

Loading content...

Implementors

impl<'_, T: ?Sized> ErasablePtr for &'_ T where
    T: Erasable
[src]

impl<'_, T: ?Sized> ErasablePtr for &'_ mut T where
    T: Erasable
[src]

Loading content...