1macro_rules! define_le_to_array {
2 ($name: ident, $type: ty, $byte_len: expr) => {
3 #[inline]
4 pub fn $name(val: $type) -> [u8; $byte_len] {
5 debug_assert_eq!(::std::mem::size_of::<$type>(), $byte_len); let mut res = [0; $byte_len];
7 for i in 0..$byte_len {
8 res[i] = ((val >> i*8) & 0xff) as u8;
9 }
10 res
11 }
12 }
13}
14
15define_le_to_array!(u32_to_array_le, u32, 4);
16
17#[cfg(test)]
18mod tests {
19 use super::*;
20
21 #[test]
22 fn endianness_test() {
23 assert_eq!(u32_to_array_le(0xdead_beef), [0xef, 0xbe, 0xad, 0xde]);
24 }
25}