diff --git a/src/buf/iter.rs b/src/buf/iter.rs index c4d47e92093507bc04b312b3bc2bb73f43801c20..9345c05b63d4494549930bdbe599827c02fce20f 100644 --- a/src/buf/iter.rs +++ b/src/buf/iter.rs @@ -112,3 +112,5 @@ impl<T: Buf> Iterator for Iter<T> { (rem, Some(rem)) } } + +impl<T: Buf> ExactSizeIterator for Iter<T> { } diff --git a/tests/test_iter.rs b/tests/test_iter.rs new file mode 100644 index 0000000000000000000000000000000000000000..c16dbf694ba40680d8812de584569e13b6e6f5e1 --- /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); +}