dcrypt_internal/
endian.rs

1//! Endianness utility functions
2
3/// Convert a u32 from little-endian byte order to native byte order
4pub fn u32_from_le_bytes(bytes: &[u8]) -> u32 {
5    u32::from_le_bytes([bytes[0], bytes[1], bytes[2], bytes[3]])
6}
7
8/// Convert a u32 from big-endian byte order to native byte order
9pub fn u32_from_be_bytes(bytes: &[u8]) -> u32 {
10    u32::from_be_bytes([bytes[0], bytes[1], bytes[2], bytes[3]])
11}
12
13/// Convert a u32 from native byte order to little-endian bytes
14pub fn u32_to_le_bytes(value: u32) -> [u8; 4] {
15    value.to_le_bytes()
16}
17
18/// Convert a u32 from native byte order to big-endian bytes
19pub fn u32_to_be_bytes(value: u32) -> [u8; 4] {
20    value.to_be_bytes()
21}
22
23/// Convert a u64 from little-endian byte order to native byte order
24pub fn u64_from_le_bytes(bytes: &[u8]) -> u64 {
25    u64::from_le_bytes([
26        bytes[0], bytes[1], bytes[2], bytes[3], bytes[4], bytes[5], bytes[6], bytes[7],
27    ])
28}
29
30/// Convert a u64 from big-endian byte order to native byte order
31pub fn u64_from_be_bytes(bytes: &[u8]) -> u64 {
32    u64::from_be_bytes([
33        bytes[0], bytes[1], bytes[2], bytes[3], bytes[4], bytes[5], bytes[6], bytes[7],
34    ])
35}
36
37/// Convert a u64 from native byte order to little-endian bytes
38pub fn u64_to_le_bytes(value: u64) -> [u8; 8] {
39    value.to_le_bytes()
40}
41
42/// Convert a u64 from native byte order to big-endian bytes
43pub fn u64_to_be_bytes(value: u64) -> [u8; 8] {
44    value.to_be_bytes()
45}