mirror of
https://github.com/n0-computer/noq.git
synced 2026-09-20 02:04:07 +00:00
Simplify starter byte without prefix
This commit is contained in:
@@ -72,7 +72,7 @@ impl Decoder {
|
||||
|
||||
pub fn feed_stream<T: Buf>(&mut self, buf: &mut T) -> Result<(), Error> {
|
||||
let block_len = Parser::new(buf)
|
||||
.integer(StarterByte::prefix(8).expect("valid starter byte"))
|
||||
.integer(StarterByte::noprefix())
|
||||
.map_err(|_| Error::InvalidIntegerPrimitive)?;
|
||||
|
||||
if block_len as usize != buf.remaining() {
|
||||
@@ -105,8 +105,7 @@ impl Decoder {
|
||||
.expect("valid starter byte"))
|
||||
.map_err(|_| Error::InvalidIntegerPrimitive)? as usize;
|
||||
let value = parser
|
||||
.string(StarterByte::prefix(8)
|
||||
.expect("valid starter byte"))
|
||||
.string(StarterByte::noprefix())
|
||||
.map_err(|_| Error::InvalidStringPrimitive)?;
|
||||
|
||||
let name =
|
||||
@@ -137,8 +136,7 @@ impl Decoder {
|
||||
.expect("valid starter byte"))
|
||||
.map_err(|_| Error::InvalidStringPrimitive)?;
|
||||
let value = parser
|
||||
.string(StarterByte::prefix(8)
|
||||
.expect("valid starter byte"))
|
||||
.string(StarterByte::noprefix())
|
||||
.map_err(|_| Error::InvalidStringPrimitive)?;
|
||||
|
||||
self.put_field(HeaderField::new(name, value));
|
||||
|
||||
@@ -82,9 +82,7 @@ impl<'a> Dump<'a> {
|
||||
}
|
||||
|
||||
let _ = self.put_byte(first_byte as u8)?;
|
||||
let _ = self.integer(
|
||||
input.len(),
|
||||
StarterByte::prefix(8).expect("valid starter byte"))?;
|
||||
let _ = self.integer(input.len(), StarterByte::noprefix())?;
|
||||
}
|
||||
|
||||
self.buf.write(&input[..]).map(|_| ())
|
||||
@@ -167,7 +165,7 @@ mod tests {
|
||||
#[test]
|
||||
fn test_write_ascii_string() {
|
||||
let text = b"Testing ascii";
|
||||
let starter = StarterByte::prefix(8).expect("valid starter byte");
|
||||
let starter = StarterByte::noprefix();
|
||||
let expected: [u8; 14] = [
|
||||
// not huffman, size
|
||||
0 | 13,
|
||||
@@ -205,7 +203,7 @@ mod tests {
|
||||
#[test]
|
||||
fn test_write_empty_string() {
|
||||
let text = b"";
|
||||
let starter = StarterByte::prefix(8).expect("valid starter byte");
|
||||
let starter = StarterByte::noprefix();
|
||||
let expected: [u8; 1] = [
|
||||
0 | 0 // not huffman, size
|
||||
];
|
||||
|
||||
@@ -19,6 +19,10 @@ pub struct StarterByte {
|
||||
|
||||
impl StarterByte {
|
||||
|
||||
pub fn noprefix() -> StarterByte {
|
||||
StarterByte { prefix: 8, mask: 255, byte: None }
|
||||
}
|
||||
|
||||
pub fn prefix(prefix: usize) -> Result<StarterByte, Error> {
|
||||
Self::build(prefix, None)
|
||||
}
|
||||
|
||||
@@ -220,8 +220,7 @@ mod tests {
|
||||
|
||||
let mut cursor = Cursor::new(&bytes);
|
||||
let mut parser = Parser::new(&mut cursor);
|
||||
let res = parser.string(StarterByte::prefix(8)
|
||||
.expect("valid starter byte"));
|
||||
let res = parser.string(StarterByte::noprefix());
|
||||
|
||||
assert_eq!(res, Ok(Vec::from(text)));
|
||||
}
|
||||
@@ -238,8 +237,7 @@ mod tests {
|
||||
|
||||
let mut cursor = Cursor::new(&bytes);
|
||||
let mut parser = Parser::new(&mut cursor);
|
||||
let res = parser.string(StarterByte::prefix(8)
|
||||
.expect("valid starter byte"));
|
||||
let res = parser.string(StarterByte::noprefix());
|
||||
|
||||
assert_eq!(res, Ok(Vec::new()));
|
||||
}
|
||||
@@ -258,8 +256,7 @@ mod tests {
|
||||
|
||||
let mut cursor = Cursor::new(&bytes);
|
||||
let mut parser = Parser::new(&mut cursor);
|
||||
let res = parser.string(StarterByte::prefix(8)
|
||||
.expect("valid starter byte"));
|
||||
let res = parser.string(StarterByte::noprefix());
|
||||
|
||||
assert_eq!(res, Err(Error::TooShortBufferForString(14)));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user