Coverage Report

Created: 2021-03-22 08:29

/rust/registry/src/github.com-1ecc6299db9ec823/scroll-0.10.2/src/endian.rs
Line
Count
Source (jump to first uncovered line)
1
#[derive(PartialEq, Eq, Copy, Debug, Clone)]
2
/// The endianness (byte order) of a stream of bytes
3
pub enum Endian {
4
    Little,
5
    Big,
6
}
7
8
/// Little Endian byte order context
9
pub const LE: Endian = Endian::Little;
10
/// Big Endian byte order context
11
pub const BE: Endian = Endian::Big;
12
/// Network byte order context
13
pub const NETWORK: Endian = Endian::Big;
14
#[cfg(target_endian = "little")]
15
/// The machine's native byte order
16
pub const NATIVE: Endian = LE;
17
#[cfg(target_endian = "big")]
18
/// The machine's native byte order
19
pub const NATIVE: Endian = BE;
20
21
impl Default for Endian {
22
    #[inline]
23
    fn default() -> Self {
24
        NATIVE
25
    }
26
}
27
28
impl From<bool> for Endian {
29
    #[inline]
30
    fn from(little_endian: bool) -> Self {
31
        if little_endian { LE } else { BE }
32
    }
33
}
34
35
impl Endian {
36
    #[inline]
37
    pub fn network() -> Endian {
38
        NETWORK
39
    }
40
    #[inline]
41
0
    pub fn is_little(&self) -> bool {
42
0
        match *self {
43
0
            LE => true,
44
0
            _ => false,
45
        }
46
0
    }
47
}