const-decimal 0.3.0

Integer-backed decimals with constant precision
Documentation
macro_rules! apply_to_common_variants {
    ($macro:ident) => {
        $macro!(u8, 1);
        $macro!(i8, 1);
        $macro!(u16, 2);
        $macro!(i16, 2);
        $macro!(u32, 5);
        $macro!(i32, 5);
        $macro!(u64, 9);
        $macro!(i64, 9);
        $macro!(u128, 18);
        $macro!(i128, 18);
    };
}

macro_rules! generate_tests_for_common_variants {
    ($f:ident) => {
        crate::macros::generate_test!($f, u8, 1);
        crate::macros::generate_test!($f, i8, 1);
        crate::macros::generate_test!($f, u16, 2);
        crate::macros::generate_test!($f, i16, 2);
        crate::macros::generate_test!($f, u32, 5);
        crate::macros::generate_test!($f, i32, 5);
        crate::macros::generate_test!($f, u64, 9);
        crate::macros::generate_test!($f, i64, 9);
        crate::macros::generate_test!($f, u128, 18);
        crate::macros::generate_test!($f, i128, 18);
    };
}

macro_rules! generate_test {
    ($f:ident, $underlying:ty, $decimals:literal) => {
        ::paste::paste! {
            #[test]
            fn [<$f _ $underlying _ $decimals >]() {
                $f::<$underlying, $decimals>();
            }
        }
    };
}

pub(crate) use {apply_to_common_variants, generate_test, generate_tests_for_common_variants};