mod sealed {
pub trait Sealed {}
}
#[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
pub enum Endian {
Little,
Big,
}
pub trait FixedEndian: sealed::Sealed + Copy {
const ENDIAN: Endian;
}
#[derive(Default, Copy, Clone, Eq, PartialEq, Hash, Debug)]
pub struct BigEndian;
impl sealed::Sealed for BigEndian {}
impl FixedEndian for BigEndian {
const ENDIAN: Endian = Endian::Big;
}
#[derive(Default, Copy, Clone, Eq, PartialEq, Hash, Debug)]
pub struct LittleEndian;
impl sealed::Sealed for LittleEndian {}
impl FixedEndian for LittleEndian {
const ENDIAN: Endian = Endian::Little;
}