1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
use crate::{FmtArg, PanicFmt, PanicVal};

use core::num::{
    NonZeroI128, NonZeroI16, NonZeroI32, NonZeroI64, NonZeroI8, NonZeroIsize, NonZeroU128,
    NonZeroU16, NonZeroU32, NonZeroU64, NonZeroU8, NonZeroUsize,
};

macro_rules! nonzero_impls {
    ($(($int_ctor:ident, $ty:ty))*) => (
        $(
            primitive_static_panicfmt!{
                fn[](&self: $ty, fmtarg) {
                    PanicVal::$int_ctor(self.0.get(), fmtarg)
                }
            }
        )*

        impl_for_option!{
            $((for[], 'static, $ty, $ty))*
        }
    )
}

nonzero_impls! {
    (from_u8, NonZeroU8)
    (from_i8, NonZeroI8)
    (from_u16, NonZeroU16)
    (from_i16, NonZeroI16)
    (from_u32, NonZeroU32)
    (from_i32, NonZeroI32)
    (from_u64, NonZeroU64)
    (from_i64, NonZeroI64)
    (from_u128, NonZeroU128)
    (from_i128, NonZeroI128)
    (from_usize, NonZeroUsize)
    (from_isize, NonZeroIsize)
}