in dc/s2n-quic-dc/src/stream/send/state.rs [1290:1324]
fn invariants(&self) {
if !self.unacked_ranges.is_empty() {
let mut unacked_ranges = self.unacked_ranges.clone();
let last = unacked_ranges.inclusive_ranges().next_back().unwrap();
unacked_ranges.remove(last).unwrap();
for (_pn, packet) in self.sent_stream_packets.iter() {
if packet.info.payload_len == 0 {
continue;
}
unacked_ranges.remove(packet.info.range()).unwrap();
}
for (_pn, packet) in self.sent_recovery_packets.iter() {
if packet.info.payload_len == 0 {
continue;
}
unacked_ranges.remove(packet.info.range()).unwrap();
}
for v in self.retransmissions.iter() {
if v.payload_len == 0 {
continue;
}
unacked_ranges.remove(v.range()).unwrap();
}
assert!(
unacked_ranges.is_empty(),
"unacked ranges should be empty: {unacked_ranges:?}\n state\n {self:#?}"
);
}
}