Skip to content

Commit d8d398b

Browse files
Zettrokelelongg
authored andcommitted
override put_slice for &mut [u8] (tokio-rs#483)
1 parent b2fef63 commit d8d398b

File tree

2 files changed

+11
-0
lines changed

2 files changed

+11
-0
lines changed

src/buf/buf_mut.rs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1014,6 +1014,14 @@ unsafe impl BufMut for &mut [u8] {
10141014
let (_, b) = core::mem::replace(self, &mut []).split_at_mut(cnt);
10151015
*self = b;
10161016
}
1017+
1018+
#[inline]
1019+
fn put_slice(&mut self, src: &[u8]) {
1020+
self[..src.len()].copy_from_slice(src);
1021+
unsafe {
1022+
self.advance_mut(src.len());
1023+
}
1024+
}
10171025
}
10181026

10191027
#[cfg(feature = "alloc")]

tests/test_buf_mut.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,9 @@ fn test_mut_slice() {
7171
let mut v = vec![0, 0, 0, 0];
7272
let mut s = &mut v[..];
7373
s.put_u32(42);
74+
75+
assert_eq!(s.len(), 0);
76+
assert_eq!(&v, &[0, 0, 0, 42]);
7477
}
7578

7679
#[test]

0 commit comments

Comments
 (0)