Trait enum_ptr::FieldDeref

source ·
pub unsafe trait FieldDeref {
    type Target<'a>
       where Self: 'a;

    // Required method
    fn deref(&self) -> Self::Target<'_>;
}
Expand description

Types that can be used by get_ref and to derive CompactBorrow.

It’s like Deref but with flexible targets and strict constraints.

Safety

T must not deref to something that points to its own memory.

A counter-example is ManuallyDrop<T>, which will deref to &T.

Required Associated Types§

source

type Target<'a> where Self: 'a

Required Methods§

source

fn deref(&self) -> Self::Target<'_>

Implementations on Foreign Types§

source§

impl<T> FieldDeref for Option<Rc<T>>

§

type Target<'a> = Option<&'a T> where Self: 'a

source§

fn deref(&self) -> Self::Target<'_>

source§

impl<T> FieldDeref for Option<Box<T>>

§

type Target<'a> = Option<&'a T> where Self: 'a

source§

fn deref(&self) -> Self::Target<'_>

source§

impl<T> FieldDeref for Option<Arc<T>>

§

type Target<'a> = Option<&'a T> where Self: 'a

source§

fn deref(&self) -> Self::Target<'_>

source§

impl<T> FieldDeref for Rc<T>

§

type Target<'a> = &'a T where Self: 'a

source§

fn deref(&self) -> Self::Target<'_>

source§

impl<T> FieldDeref for Option<&mut T>

§

type Target<'a> = Option<&'a T> where Self: 'a

source§

fn deref(&self) -> Self::Target<'_>

source§

impl<T> FieldDeref for Option<&T>

§

type Target<'a> = Option<&'a T> where Self: 'a

source§

fn deref(&self) -> Self::Target<'_>

source§

impl<T> FieldDeref for &T

§

type Target<'a> = &'a T where Self: 'a

source§

fn deref(&self) -> Self::Target<'_>

source§

impl<T> FieldDeref for Arc<T>

§

type Target<'a> = &'a T where Self: 'a

source§

fn deref(&self) -> Self::Target<'_>

source§

impl<T> FieldDeref for Box<T>

§

type Target<'a> = &'a T where Self: 'a

source§

fn deref(&self) -> Self::Target<'_>

source§

impl<T> FieldDeref for &mut T

§

type Target<'a> = &'a T where Self: 'a

source§

fn deref(&self) -> Self::Target<'_>

Implementors§