//! Utility functions that don't fit anywhere else.
use std::convert::TryFrom;
pub fn read_be_u64(b: &[u8]) -> u64 {
let array = <[u8; 8]>::try_from(b).unwrap();
u64::from_be_bytes(array)
}
pub fn write_be_u64(b: &mut [u8], n: u64) {
b.copy_from_slice(&n.to_be_bytes());
}
#[cfg(test)]
mod test {
use super::*;
quickcheck! {
fn be_u64_roundtrip(n: u64) -> bool {
let mut b = [0; 8];
write_be_u64(&mut b, n);
n == read_be_u64(&b)
}
}
}