#![no_std]
pub mod dec;
pub trait Zero { const zero: Self; }
pub trait One { const one : Self; }
macro_rules! impl_zero_one {
($($t:ty),*) => {$(
impl Zero for $t { const zero: Self = 0; }
impl One for $t { const one : Self = 1; }
)*}
}
impl_zero_one!(usize, u8, u16, u32, u64,
isize, i8, i16, i32, i64);
impl Zero for f32 { const zero: Self = 0.; }
impl One for f32 { const one : Self = 1.; }
impl Zero for f64 { const zero: Self = 0.; }
impl One for f64 { const one : Self = 1.; }
impl Zero for char { const zero: Self = '\0'; }
impl<T> Zero for *const T { const zero: Self = 0 as Self; }
impl<T> Zero for *mut T { const zero: Self = 0 as Self; }