pub(crate) fn ull_to_bytes(out: &mut [u8], val: u64) {
let outlen = out.len();
let mut v = val;
for i in (0..outlen).rev() {
out[i] = (v & 0xff) as u8;
v >>= 8;
}
}
pub(crate) fn bytes_to_ull(input: &[u8]) -> u64 {
let mut retval: u64 = 0;
for &byte in input.iter().take(8) {
retval = (retval << 8) | u64::from(byte);
}
retval
}