diff options
-rw-r--r-- | src/bytes_mut.rs | 11 | ||||
-rw-r--r-- | tests/test_bytes.rs | 7 |
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(); |