Struct core::nonzero::NonZero [] [src]

pub struct NonZero<T: Zeroable>(_);
Unstable (nonzero #27730)

: needs an RFC to flesh out the design

A wrapper type for raw pointers and integers that will never be NULL or 0 that might allow certain optimizations.


impl<T: Zeroable> NonZero<T>

const unsafe fn new(inner: T) -> NonZero<T>

Unstable (nonzero #27730)

: needs an RFC to flesh out the design

Creates an instance of NonZero with the provided value. You must indeed ensure that the value is actually "non-zero".

Trait Implementations

impl<T: Zeroable> Deref for NonZero<T>

type Target = T

fn deref(&self) -> &T

impl<T: Zeroable + CoerceUnsized<U>, U: Zeroable> CoerceUnsized<NonZero<U>> for NonZero<T>

Derived Implementations

impl<T: Hash + Zeroable> Hash for NonZero<T>

fn hash<__H: Hasher>(&self, __arg_0: &mut __H)

fn hash_slice<H: Hasher>(data: &[Self], state: &mut H) where Self: Sized

impl<T: Debug + Zeroable> Debug for NonZero<T>

fn fmt(&self, __arg_0: &mut Formatter) -> Result

impl<T: PartialOrd + Zeroable> PartialOrd for NonZero<T>

fn partial_cmp(&self, __arg_0: &NonZero<T>) -> Option<Ordering>

fn lt(&self, __arg_0: &NonZero<T>) -> bool

fn le(&self, __arg_0: &NonZero<T>) -> bool

fn gt(&self, __arg_0: &NonZero<T>) -> bool

fn ge(&self, __arg_0: &NonZero<T>) -> bool

impl<T: Ord + Zeroable> Ord for NonZero<T>

fn cmp(&self, __arg_0: &NonZero<T>) -> Ordering

impl<T: PartialEq + Zeroable> PartialEq for NonZero<T>

fn eq(&self, __arg_0: &NonZero<T>) -> bool

fn ne(&self, __arg_0: &NonZero<T>) -> bool

impl<T: Eq + Zeroable> Eq for NonZero<T>

impl<T: Clone + Zeroable> Clone for NonZero<T>

fn clone(&self) -> NonZero<T>

fn clone_from(&mut self, source: &Self)

impl<T: Copy + Zeroable> Copy for NonZero<T>