pub fn read_u8<B: ByteSlice>(buf: B) -> Result<(u8, usize), Error>