|
@@ -6,14 +6,6 @@ pub struct ByteReader<Rd> {
|
|
|
bytes: Rd,
|
|
|
}
|
|
|
|
|
|
-#[test]
|
|
|
-fn reader_tests() {
|
|
|
- assert!(ByteReader::from_slice(&[0x00]).read_twip() == Ok(-32.0));
|
|
|
- assert!(ByteReader::from_slice(&[0x00]).read_prefix_int() == Ok(0x00));
|
|
|
- assert!(ByteReader::from_slice(&[0x7f]).read_prefix_int() == Ok(0x7f));
|
|
|
- assert!(ByteReader::from_slice(&[0x80,0xff]).read_prefix_int() == Ok(0xff));
|
|
|
-}
|
|
|
-
|
|
|
const MK_OK: &'static Fn(io::Result<u8>) -> Option<u8> = &|s| s.ok();
|
|
|
|
|
|
impl<R: io::Read>
|
|
@@ -53,6 +45,17 @@ impl<'a> ByteReader<iter::Map<slice::Iter<'a, u8>, &'static Fn(&u8) -> u8>> {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+#[test]
|
|
|
+fn reader_tests() {
|
|
|
+ assert!(ByteReader::from_slice(&[0x00]).read_twip() == Ok(-32.0));
|
|
|
+ assert!(ByteReader::from_slice(&[0x00]).read_prefix_int() == Ok(0x00));
|
|
|
+ assert!(ByteReader::from_slice(&[0x7f]).read_prefix_int() == Ok(0x7f));
|
|
|
+ assert!(ByteReader::from_slice(&[0x80,0xff]).read_prefix_int() == Ok(0xff));
|
|
|
+ assert!(ByteReader::from_slice(&[0x03,0x00,0x00,0x00])
|
|
|
+ .read_several(|r| r.read_twip()) ==
|
|
|
+ Ok(vec![-32.0,-32.0,-32.0]));
|
|
|
+}
|
|
|
+
|
|
|
impl<T> ByteReader<T> where T: Iterator<Item=u8> {
|
|
|
/// This gets the next byte, or fails if it's out of input.
|
|
|
pub fn next(&mut self) -> Result<u8, String> {
|