yoke::cartable_ptr

Trait CartablePointerLike

Source
pub unsafe trait CartablePointerLike: StableDeref + Sealed { }
Expand description

An object fully representable by a non-null pointer.

§Safety

Implementer safety:

  1. into_raw transfers ownership of the values referenced by StableDeref to the caller, if there is ownership to transfer
  2. drop_raw returns ownership back to the impl, if there is ownership to transfer

Note: if into_raw returns the sentinel pointer, memory leaks may occur, but this will not lead to undefined behaviour.

Note: the pointer NonNull<Self::Raw> may or may not be aligned and it should never be dereferenced. Rust allows unaligned pointers; see std::ptr::read_unaligned.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl<'a, T> CartablePointerLike for &'a T

Source§

impl<T> CartablePointerLike for Box<T>

Source§

impl<T> CartablePointerLike for Rc<T>

Source§

impl<T> CartablePointerLike for Arc<T>

Implementors§