override put_slice for &mut [u8] (#483)

This commit is contained in:
Zettroke
2021-02-15 16:35:01 -08:00
committed by GitHub
parent e4182808df
commit 268f6f80b4
2 changed files with 11 additions and 0 deletions
+8
View File
@@ -1012,6 +1012,14 @@ unsafe impl BufMut for &mut [u8] {
let (_, b) = core::mem::replace(self, &mut []).split_at_mut(cnt);
*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> {
+3
View File
@@ -70,6 +70,9 @@ fn test_mut_slice() {
let mut v = vec![0, 0, 0, 0];
let mut s = &mut v[..];
s.put_u32(42);
assert_eq!(s.len(), 0);
assert_eq!(&v, &[0, 0, 0, 42]);
}
#[test]