linker_utils/
utils.rs

1// Return u32 from a byte slice
2#[must_use]
3pub fn u32_from_slice(data: &[u8]) -> u32 {
4    u32::from_le_bytes(*data.first_chunk::<4>().unwrap())
5}
6
7// Return u64 from a byte slice
8#[must_use]
9pub fn u64_from_slice(data: &[u8]) -> u64 {
10    u64::from_le_bytes(*data.first_chunk::<8>().unwrap())
11}
12
13// Copy `mask` slice into the `dest` slice using OR operation.
14pub fn or_from_slice(dest: &mut [u8], mask_bytes: &[u8]) {
15    for (i, v) in mask_bytes.iter().enumerate() {
16        dest[i] |= *v;
17    }
18}
19
20// And `mask` slice with the `dest` slice using AND operation.
21pub fn and_from_slice(dest: &mut [u8], mask_bytes: &[u8]) {
22    for (i, v) in mask_bytes.iter().enumerate() {
23        dest[i] &= *v;
24    }
25}