[][src]Trait reclaim::prelude::NonNullable

pub trait NonNullable: Sized + Internal {
    type Item: Sized;
    type MarkBits: Unsigned;
    fn into_marked_non_null(self) -> MarkedNonNull<Self::Item, Self::MarkBits>;
}

An sealed (internal) marker trait for non-nullable pointer types.

Associated Types

type Item: Sized

The pointed-to type.

type MarkBits: Unsigned

Number of bits available for tagging.

Loading content...

Required methods

fn into_marked_non_null(self) -> MarkedNonNull<Self::Item, Self::MarkBits>

Converts the given Self into a equivalent marked non-null pointer.

Note

For types like Shared, Shared and Unlinked, which implement Deref this method may conflict with inherent methods of the de-referenced type and goes against Rust's API guidelines. This is a deliberate trade-off for enabling more ergonomic usage of this method

Loading content...

Implementations on Foreign Types

impl<'a, T> NonNullable for &'a T[src]

type Item = T

type MarkBits = U0

impl<'a, T> NonNullable for &'a mut T[src]

type Item = T

type MarkBits = U0

Loading content...

Implementors

impl<'g, T, R, N: Unsigned> NonNullable for Shared<'g, T, R, N>[src]

type Item = T

type MarkBits = N

impl<T, N: Unsigned> NonNullable for MarkedNonNull<T, N>[src]

type Item = T

type MarkBits = N

impl<T, R, N: Unsigned> NonNullable for Unlinked<T, R, N>[src]

type Item = T

type MarkBits = N

impl<T, R, N: Unsigned> NonNullable for Unprotected<T, R, N>[src]

type Item = T

type MarkBits = N

impl<T, R: Reclaim, N: Unsigned> NonNullable for Owned<T, R, N>[src]

type Item = T

type MarkBits = N

Loading content...