in netbench/src/multiplex/buffer.rs [82:101]
fn advance(&mut self, mut cnt: usize) {
while cnt > 0 {
let len = if let Some(front) = self.head.front_mut() {
let len = front.len().min(cnt);
front.advance(len);
if front.is_empty() {
let _ = self.head.pop_front();
}
len
} else {
self.tail.advance(cnt);
cnt
};
cnt -= len;
self.len -= len;
}
self.check_consistency();
}