diff --git a/src/buf/into_buf.rs b/src/buf/into_buf.rs index 96419da..d43f95b 100644 --- a/src/buf/into_buf.rs +++ b/src/buf/into_buf.rs @@ -63,6 +63,14 @@ impl<'a> IntoBuf for &'a [u8] { } } +impl<'a> IntoBuf for &'a mut [u8] { + type Buf = io::Cursor<&'a mut [u8]>; + + fn into_buf(self) -> Self::Buf { + io::Cursor::new(self) + } +} + impl<'a> IntoBuf for &'a str { type Buf = io::Cursor<&'a [u8]>; diff --git a/tests/test_bytes.rs b/tests/test_bytes.rs index ccc89fa..9aff072 100644 --- a/tests/test_bytes.rs +++ b/tests/test_bytes.rs @@ -1,6 +1,6 @@ extern crate bytes; -use bytes::{Bytes, BytesMut, BufMut}; +use bytes::{Bytes, BytesMut, BufMut, IntoBuf}; const LONG: &'static [u8] = b"mary had a little lamb, little lamb, little lamb"; const SHORT: &'static [u8] = b"hello world"; @@ -303,6 +303,13 @@ fn fns_defined_for_bytes_mut() { assert_eq!(&v[..], bytes); } +#[test] +fn mut_into_buf() { + let mut v = vec![0, 0, 0, 0]; + let s = &mut v[..]; + s.into_buf().put_u32_le(42); +} + #[test] fn reserve_convert() { // Inline -> Vec