From 2b0602e75646acd8d65b9efdcd6e6a3a8a1c1661 Mon Sep 17 00:00:00 2001 From: brianwp <brianwp@users.noreply.github.com> Date: Wed, 24 May 2017 08:13:19 -0700 Subject: [PATCH] impl ExactSizeIterator for Iter<T: Buf> (#127) --- src/buf/iter.rs | 2 ++ tests/test_iter.rs | 22 ++++++++++++++++++++++ 2 files changed, 24 insertions(+) create mode 100644 tests/test_iter.rs 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<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 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); +} -- GitLab