use rtcp::transport_feedbacks::cc_feedback_report::Ecn;
use std::time::{Duration, Instant};
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub struct Acknowledgement {
pub sequence_number: u16,
pub arrived: bool,
pub arrival: Option<Duration>,
pub ecn: Ecn,
}
impl Acknowledgement {
pub fn lost(sequence_number: u16) -> Self {
Self {
sequence_number,
arrived: false,
arrival: None,
ecn: Ecn::NotEct,
}
}
pub fn received(sequence_number: u16, arrival: Option<Duration>, ecn: Ecn) -> Self {
Self {
sequence_number,
arrived: true,
arrival,
ecn,
}
}
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct PacketReport {
pub ssrc: u32,
pub id: u64,
pub rtp_sequence_number: u16,
pub is_twcc: bool,
pub twcc_sequence_number: u16,
pub size: usize,
pub arrived: bool,
pub departure: Instant,
pub arrival: Option<Duration>,
pub ecn: Ecn,
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct Report {
pub arrival: Instant,
pub rtt: Option<Duration>,
pub packet_reports: Vec<PacketReport>,
}