DEWQ 0.0.4

QR Code Generation Library
Documentation
use std::fmt::Display;

#[derive(Debug, PartialEq, Eq, Clone, Copy)]
pub enum Bit {
    Zero,
    One,
}

macro_rules! impl_from_for_bit {
    ($($t:ty), *) => {
        $(
            impl From<$t> for Bit {
                fn from(value: $t) -> Self {
                    match value {
                        0 => Bit::Zero,
                        _ => Bit::One,
                    }
                }
            }
        )*
    };
}

impl_from_for_bit!(u8, u16, u32, u64, u128, usize, i8, i16, i32, i64, i128, isize);

impl Display for Bit {
    fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
        match self {
            Bit::Zero => {
                write!(f, "{}", 0)?;
            }
            Bit::One => {
                write!(f, "{}", 1)?;
            }
        }

        Ok(())
    }
}