1mod sealed {
4 pub trait Sealed {}
5}
6
7#[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
9pub enum Endian {
10 Little,
12 Big,
14}
15
16pub trait FixedEndian: sealed::Sealed + Copy {
18 const ENDIAN: Endian;
20}
21
22#[derive(Default, Copy, Clone, Eq, PartialEq, Hash, Debug)]
24pub struct BigEndian;
25
26impl sealed::Sealed for BigEndian {}
27
28impl FixedEndian for BigEndian {
29 const ENDIAN: Endian = Endian::Big;
30}
31
32#[derive(Default, Copy, Clone, Eq, PartialEq, Hash, Debug)]
34pub struct LittleEndian;
35
36impl sealed::Sealed for LittleEndian {}
37
38impl FixedEndian for LittleEndian {
39 const ENDIAN: Endian = Endian::Little;
40}