Reuse capacity when possible in <BytesMut as Buf>::advance impl (#698)

This commit is contained in:
Paolo Barbolini
2024-04-25 09:08:16 +02:00
committed by GitHub
parent ce09d7d358
commit baa5053572
+8
View File
@@ -1066,6 +1066,14 @@ impl Buf for BytesMut {
#[inline]
fn advance(&mut self, cnt: usize) {
// Advancing by the length is the same as resetting the length to 0,
// except this way we get to reuse the full capacity.
if cnt == self.remaining() {
// SAFETY: Zero is not greater than the capacity.
unsafe { self.set_len(0) };
return;
}
assert!(
cnt <= self.remaining(),
"cannot advance past `remaining`: {:?} <= {:?}",