Struct TransportLimits
pub struct TransportLimits {
pub max_idle_timeout: Duration,
pub initial_max_data: u64,
pub initial_max_stream_data_bidi_local: u64,
pub initial_max_stream_data_bidi_remote: u64,
pub initial_max_stream_data_uni: u64,
pub initial_max_streams_bidi: u64,
pub initial_max_streams_uni: u64,
pub max_ack_delay: Duration,
pub active_connection_id_limit: Option<u64>,
pub max_udp_payload_size: u64,
pub datagram_receive_buffer_size: Option<usize>,
}quic only.Expand description
The advertised flow-control and timing limits, as the transport parameters carry them.
Fields§
§max_idle_timeout: Duration§initial_max_data: u64§initial_max_stream_data_bidi_local: u64§initial_max_stream_data_bidi_remote: u64§initial_max_stream_data_uni: u64§initial_max_streams_bidi: u64§initial_max_streams_uni: u64§max_ack_delay: Duration§active_connection_id_limit: Option<u64>Advertised as-is when set. An engine clamps values above its CID storage limit to that limit when applying the profile, tracing the change.
max_udp_payload_size: u64§datagram_receive_buffer_size: Option<usize>The datagram receive buffer, from which max_datagram_frame_size follows; None
disables the extension.
Implementations§
§impl TransportLimits
impl TransportLimits
pub fn try_from_sent(
parameters: &[RawParameter],
) -> Result<TransportLimits, ProfileError>
pub fn try_from_sent( parameters: &[RawParameter], ) -> Result<TransportLimits, ProfileError>
The limits a client’s sent transport parameters advertised, over
Self::protocol_defaults for those it omitted.
pub fn protocol_defaults() -> TransportLimits
pub fn protocol_defaults() -> TransportLimits
Limits implied by omitted transport parameters (RFC 9000 section 18.2).
Capture compilers start here and replace only observed values. In
particular, omitted flow-control limits grant no credit, an omitted idle
timeout is disabled, and omitting the DATAGRAM extension disables reception.
Self::standard instead supplies Rama’s ordinary endpoint configuration.
pub fn standard() -> TransportLimits
pub fn standard() -> TransportLimits
This crate’s own advertised limits, matching what its engine sends by default.
Trait Implementations§
§impl Clone for TransportLimits
impl Clone for TransportLimits
§fn clone(&self) -> TransportLimits
fn clone(&self) -> TransportLimits
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more§impl Debug for TransportLimits
impl Debug for TransportLimits
§impl<'de> Deserialize<'de> for TransportLimits
impl<'de> Deserialize<'de> for TransportLimits
§fn deserialize<__D>(
__deserializer: __D,
) -> Result<TransportLimits, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<TransportLimits, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
impl Eq for TransportLimits
§impl Hash for TransportLimits
impl Hash for TransportLimits
§impl PartialEq for TransportLimits
impl PartialEq for TransportLimits
§impl Serialize for TransportLimits
impl Serialize for TransportLimits
§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
impl StructuralPartialEq for TransportLimits
§impl TryFrom<TransportLimitsRepr> for TransportLimits
impl TryFrom<TransportLimitsRepr> for TransportLimits
§type Error = ProfileError
type Error = ProfileError
§fn try_from(
repr: TransportLimitsRepr,
) -> Result<TransportLimits, <TransportLimits as TryFrom<TransportLimitsRepr>>::Error>
fn try_from( repr: TransportLimitsRepr, ) -> Result<TransportLimits, <TransportLimits as TryFrom<TransportLimitsRepr>>::Error>
Auto Trait Implementations§
impl Freeze for TransportLimits
impl RefUnwindSafe for TransportLimits
impl Send for TransportLimits
impl Sync for TransportLimits
impl Unpin for TransportLimits
impl UnsafeUnpin for TransportLimits
impl UnwindSafe for TransportLimits
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§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
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>,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a rama_grpc::Request§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§fn and<P, B, E>(self, other: P) -> And<T, P>
fn and<P, B, E>(self, other: P) -> And<T, P>
Policy that returns Action::Follow only if self and other return
Action::Follow. Read more