#[non_exhaustive]pub enum CongestionControl {
Loss,
Delay,
}Expand description
The congestion control family for a QUIC connection.
This selects a family rather than a named algorithm because each backend ships a
different generation: BBRv1 on quinn, BBRv2 on quiche, BBRv3 on noq and iroh. A
Bbr variant would promise more than any one backend delivers.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
Loss
Loss-based (CUBIC): grows until it drops packets, so the send rate sawtooths. Throughput-oriented, and the default on most stacks.
Delay
Delay-based (BBR): tracks the measured delivery rate and RTT instead of waiting for loss, which keeps queues short and the send rate steady enough for an encoder to track.
Trait Implementations§
Source§impl Clone for CongestionControl
impl Clone for CongestionControl
Source§fn clone(&self) -> CongestionControl
fn clone(&self) -> CongestionControl
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreimpl Copy for CongestionControl
Source§impl Debug for CongestionControl
impl Debug for CongestionControl
Source§impl<'de> Deserialize<'de> for CongestionControl
impl<'de> Deserialize<'de> for CongestionControl
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
impl Eq for CongestionControl
Source§impl PartialEq for CongestionControl
impl PartialEq for CongestionControl
Source§impl Serialize for CongestionControl
impl Serialize for CongestionControl
impl StructuralPartialEq for CongestionControl
Source§impl ValueEnum for CongestionControl
impl ValueEnum for CongestionControl
Auto Trait Implementations§
impl Freeze for CongestionControl
impl RefUnwindSafe for CongestionControl
impl Send for CongestionControl
impl Sync for CongestionControl
impl Unpin for CongestionControl
impl UnsafeUnpin for CongestionControl
impl UnwindSafe for CongestionControl
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.