fastnum 0.7.4

Fast decimal numbers library
Documentation
macro_rules! from_uint_impl {
    ($($name:ident <- $num:ident),*) => {
        $(
            #[inline(always)]
            #[doc = doc::convert::from!($num U 256)]
            pub const fn $name(n: $num) -> Self {
                debug_assert!($num::BITS <= Self::BITS);
                Self(bnum::BUint::from_digit(n as _))
            }
        )*
    };
}

pub(crate) use from_uint_impl;

macro_rules! try_from_uint_impl {
    ($($from_uint:ident <- $uint:ident),*) => {
        $(
            #[inline(always)]
            #[doc = doc::convert::from!($uint U 256)]
            pub const fn $from_uint(uint: $uint) -> Result<Self, ParseError> {
                let bits = $uint::BITS as usize - uint.leading_zeros() as usize;

                if bits > Self::BITS as usize {
                    return Err(ParseError::PosOverflow);
                }

                let digits = $crate::bint::convert::utils::digits_from_int_impl!(uint, $uint, bits);

                Ok(Self::from_digits(digits))
            }
        )*
    };
}

pub(crate) use try_from_uint_impl;