Skip to main content

Acknowledgement

Struct Acknowledgement 

Source
pub struct Acknowledgement {
    pub sequence_number: u16,
    pub arrived: bool,
    pub arrival: Option<Duration>,
    pub ecn: Ecn,
}
Expand description

One packet’s fate, as reported by the receiver.

arrival is a Duration rather than an Instant because it is measured on the receiver’s clock, which this endpoint has no way to align with its own. Only differences between arrivals are meaningful, and those are what congestion control actually reads: the spread between send spacing and arrival spacing is the delay the path is imposing.

Each feedback format supplies its own epoch — TWCC’s 24-bit reference time, RFC 8888’s report timestamp — and both advance monotonically, so arrivals stay comparable across successive reports of the same format. They are not comparable between formats.

Fields§

§sequence_number: u16

The sequence number this refers to. TWCC numbers packets itself; RFC 8888 uses the RTP sequence number of the stream it names.

§arrived: bool

Whether the receiver got it.

§arrival: Option<Duration>

When it arrived, on the receiver’s clock. None for a packet that did not arrive, or one reported as received without a usable arrival time.

§ecn: Ecn

The ECN marking the receiver observed. TWCC cannot carry this and always reports NotEct.

Implementations§

Source§

impl Acknowledgement

Source

pub fn lost(sequence_number: u16) -> Self

A packet the receiver did not get.

Source

pub fn received( sequence_number: u16, arrival: Option<Duration>, ecn: Ecn, ) -> Self

A packet the receiver got at arrival on its own clock.

Trait Implementations§

Source§

impl Clone for Acknowledgement

Source§

fn clone(&self) -> Acknowledgement

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for Acknowledgement

Source§

impl Debug for Acknowledgement

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Eq for Acknowledgement

Source§

impl PartialEq for Acknowledgement

Source§

fn eq(&self, other: &Acknowledgement) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for Acknowledgement

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.