From 131dae161fff368e8b6dbc8da0abf053dac5e523 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Mon, 24 Jan 2022 08:58:18 +0000 Subject: [PATCH] Implement `Extend` for `BytesMut` (#527) --- src/bytes_mut.rs | 11 +++++++++++ tests/test_bytes.rs | 7 +++++++ 2 files changed, 18 insertions(+) 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 for BytesMut { + fn extend(&mut self, iter: T) + where + T: IntoIterator, + { + for bytes in iter { + self.extend_from_slice(&bytes) + } + } +} + impl FromIterator for BytesMut { fn from_iter>(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 @@ -544,6 +544,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);