use std::convert::TryInto; use std::mem::size_of; pub fn read_ne_u8(input: &mut &[u8]) -> u8 { let (int_bytes, rest) = input.split_at(size_of::()); *input = rest; u8::from_ne_bytes(int_bytes.try_into().unwrap()) } pub fn read_ne_u32(input: &mut &[u8]) -> u32 { let (int_bytes, rest) = input.split_at(size_of::()); *input = rest; u32::from_ne_bytes(int_bytes.try_into().unwrap()) } pub fn read_ne_usize(input: &mut &[u8]) -> usize { let (int_bytes, rest) = input.split_at(size_of::()); *input = rest; usize::from_ne_bytes(int_bytes.try_into().unwrap()) } pub fn read_string(input: &mut &[u8], len: usize) -> Option { let (string_bytes, rest) = input.split_at(len); *input = rest; String::from_utf8(string_bytes.to_vec()).ok() }