mirror of
https://github.com/tokio-rs/bytes.git
synced 2026-08-27 00:00:17 +02:00
override put_slice for &mut [u8] (#483)
This commit is contained in:
@@ -1012,6 +1012,14 @@ unsafe impl BufMut for &mut [u8] {
|
|||||||
let (_, b) = core::mem::replace(self, &mut []).split_at_mut(cnt);
|
let (_, b) = core::mem::replace(self, &mut []).split_at_mut(cnt);
|
||||||
*self = b;
|
*self = b;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[inline]
|
||||||
|
fn put_slice(&mut self, src: &[u8]) {
|
||||||
|
self[..src.len()].copy_from_slice(src);
|
||||||
|
unsafe {
|
||||||
|
self.advance_mut(src.len());
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
unsafe impl BufMut for Vec<u8> {
|
unsafe impl BufMut for Vec<u8> {
|
||||||
|
|||||||
@@ -70,6 +70,9 @@ fn test_mut_slice() {
|
|||||||
let mut v = vec![0, 0, 0, 0];
|
let mut v = vec![0, 0, 0, 0];
|
||||||
let mut s = &mut v[..];
|
let mut s = &mut v[..];
|
||||||
s.put_u32(42);
|
s.put_u32(42);
|
||||||
|
|
||||||
|
assert_eq!(s.len(), 0);
|
||||||
|
assert_eq!(&v, &[0, 0, 0, 42]);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
|||||||
Reference in New Issue
Block a user