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// Copy `mask` slice into the `dest` slice using OR operation.
8pub fn or_from_slice(dest: &mut [u8], mask_bytes: &[u8]) {
9    for (i, v) in mask_bytes.iter().enumerate() {
10        dest[i] |= *v;
11    }
12}
13
14// And `mask` slice with the `dest` slice using AND operation.
15pub fn and_from_slice(dest: &mut [u8], mask_bytes: &[u8]) {
16    for (i, v) in mask_bytes.iter().enumerate() {
17        dest[i] &= *v;
18    }
19}