diff --git a/src/bytes.rs b/src/bytes.rs index 6964ce1187f856f0f5b3149cfd8a96627e0014c3..e71d24bb3e7c82809794427f414a5bc8997cc428 100644 --- a/src/bytes.rs +++ b/src/bytes.rs @@ -1160,6 +1160,27 @@ impl BytesMut { pub fn reserve(&mut self, additional: usize) { self.inner.reserve(additional) } + + /// Append given bytes to this object. + /// + /// If this `BytesMut` object has not enough capacity, it is resized first. + /// So unlike `put_slice` operation, `extend_from_slice` does not panic. + /// + /// # Examples + /// + /// ``` + /// use bytes::BytesMut; + /// + /// let mut buf = BytesMut::with_capacity(0); + /// buf.extend_from_slice(b"aaabbb"); + /// buf.extend_from_slice(b"cccddd"); + /// + /// assert_eq!(b"aaabbbcccddd", &buf[..]); + /// ``` + pub fn extend_from_slice(&mut self, extend: &[u8]) { + self.reserve(extend.len()); + self.put_slice(extend); + } } impl BufMut for BytesMut {