NackGeneratorBuilder

Struct NackGeneratorBuilder 

Source
pub struct NackGeneratorBuilder<P> { /* private fields */ }
Expand description

Builder for the NackGeneratorInterceptor.

§Example

use rtc_interceptor::{Registry, NackGeneratorBuilder};
use std::time::Duration;

let chain = Registry::new()
    .with(NackGeneratorBuilder::new()
        .with_size(512)
        .with_interval(Duration::from_millis(100))
        .with_skip_last_n(2)
        .build())
    .build();

Implementations§

Source§

impl<P> NackGeneratorBuilder<P>

Source

pub fn new() -> Self

Create a new builder with default settings.

Source

pub fn with_size(self, size: u16) -> Self

Set the size of the receive log.

Size must be a power of 2 between 64 and 32768 (inclusive).

Source

pub fn with_interval(self, interval: Duration) -> Self

Set the interval between NACK generation cycles.

Source

pub fn with_skip_last_n(self, skip_last_n: u16) -> Self

Set the number of most recent packets to skip when generating NACKs.

This helps avoid generating NACKs for packets that are simply delayed and haven’t arrived yet.

Source

pub fn with_max_nacks_per_packet(self, max: u16) -> Self

Set the maximum number of NACKs to send per missing packet.

Set to 0 (default) for unlimited NACKs.

Source

pub fn build(self) -> impl FnOnce(P) -> NackGeneratorInterceptor<P>

Build the interceptor factory function.

Trait Implementations§

Source§

impl<P> Default for NackGeneratorBuilder<P>

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

§

impl<P> Freeze for NackGeneratorBuilder<P>

§

impl<P> RefUnwindSafe for NackGeneratorBuilder<P>
where P: RefUnwindSafe,

§

impl<P> Send for NackGeneratorBuilder<P>
where P: Send,

§

impl<P> Sync for NackGeneratorBuilder<P>
where P: Sync,

§

impl<P> Unpin for NackGeneratorBuilder<P>
where P: Unpin,

§

impl<P> UnwindSafe for NackGeneratorBuilder<P>
where P: UnwindSafe,

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<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

Source§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

Source§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

Source§

fn implicit( self, class: Class, constructed: bool, tag: u32, ) -> TaggedParser<'a, Implicit, Self, E>

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> 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> Same for T

Source§

type Output = T

Should always be Self
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.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> ErasedDestructor for T
where T: 'static,