aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/bytes_mut.rs11
-rw-r--r--tests/test_bytes.rs7
2 files changed, 18 insertions, 0 deletions
diff --git a/src/bytes_mut.rs b/src/bytes_mut.rs
index 970ed95..d43e0ef 100644
--- a/src/bytes_mut.rs
+++ b/src/bytes_mut.rs
@@ -1211,6 +1211,17 @@ impl<'a> Extend<&'a u8> for BytesMut {
}
}
+impl Extend<Bytes> for BytesMut {
+ fn extend<T>(&mut self, iter: T)
+ where
+ T: IntoIterator<Item = Bytes>,
+ {
+ for bytes in iter {
+ self.extend_from_slice(&bytes)
+ }
+ }
+}
+
impl FromIterator<u8> for BytesMut {
fn from_iter<T: IntoIterator<Item = u8>>(into_iter: T) -> Self {
BytesMut::from_vec(Vec::from_iter(into_iter))
diff --git a/tests/test_bytes.rs b/tests/test_bytes.rs
index 3819b9f..860474a 100644
--- a/tests/test_bytes.rs
+++ b/tests/test_bytes.rs
@@ -545,6 +545,13 @@ fn extend_from_slice_mut() {
}
#[test]
+fn extend_mut_from_bytes() {
+ let mut bytes = BytesMut::with_capacity(0);
+ bytes.extend([Bytes::from(LONG)]);
+ assert_eq!(*bytes, LONG[..]);
+}
+
+#[test]
fn extend_mut_without_size_hint() {
let mut bytes = BytesMut::with_capacity(0);
let mut long_iter = LONG.iter();