in neqo-qpack/src/encoder.rs [165:187]
fn header_ack(&mut self, stream_id: StreamId) {
self.stats.header_acks_recv += 1;
let mut new_acked = self.table.get_acked_inserts_cnt();
if let Some(hb_list) = self.unacked_header_blocks.get_mut(&stream_id) {
if let Some(ref_list) = hb_list.pop_back() {
for iter in ref_list {
self.table.remove_ref(iter);
if iter >= new_acked {
new_acked = iter + 1;
}
}
} else {
debug_assert!(false, "We should have at least one header block");
}
if hb_list.is_empty() {
self.unacked_header_blocks.remove(&stream_id);
}
}
if new_acked > self.table.get_acked_inserts_cnt() {
self.insert_count_instruction(new_acked - self.table.get_acked_inserts_cnt())
.expect("This should neve happen");
}
}