Simplify starter byte without prefix

This commit is contained in:
evolix1
2018-05-29 21:42:14 +01:00
committed by Dirkjan Ochtman
parent 5076b75395
commit 595df90290
4 changed files with 13 additions and 16 deletions
+3 -5
View File
@@ -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));
+3 -5
View File
@@ -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
];
+4
View File
@@ -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)
}
+3 -6
View File
@@ -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)));
}