diff --git a/src/buf/iter.rs b/src/buf/iter.rs index c4d47e9..9345c05 100644 --- a/src/buf/iter.rs +++ b/src/buf/iter.rs @@ -112,3 +112,5 @@ impl Iterator for Iter { (rem, Some(rem)) } } + +impl ExactSizeIterator for Iter { } diff --git a/tests/test_iter.rs b/tests/test_iter.rs new file mode 100644 index 0000000..c16dbf6 --- /dev/null +++ b/tests/test_iter.rs @@ -0,0 +1,22 @@ +extern crate bytes; + +use bytes::{Buf, IntoBuf, Bytes}; + +#[test] +fn iter_len() { + let buf = Bytes::from(&b"hello world"[..]).into_buf(); + let iter = buf.iter(); + + assert_eq!(iter.size_hint(), (11, Some(11))); + assert_eq!(iter.len(), 11); +} + + +#[test] +fn empty_iter_len() { + let buf = Bytes::from(&b""[..]).into_buf(); + let iter = buf.iter(); + + assert_eq!(iter.size_hint(), (0, Some(0))); + assert_eq!(iter.len(), 0); +}