Struct RecordedInitialFlight
pub struct RecordedInitialFlight(/* private fields */);quic only.Expand description
Immutable, bounded metadata for a tokenless original Initial burst.
Construction admits consecutive packet numbers, one packet per datagram, and CRYPTO/PING/PADDING frames with complete, non-overlapping CRYPTO coverage. Unsupported token, coalescing and frame shapes require another replay policy. Clones share the validated layout; no handshake bytes are stored here.
Implementations§
§impl RecordedInitialFlight
impl RecordedInitialFlight
pub fn try_new(
version: Version,
destination_cid_len: u8,
source_cid_len: u8,
packets: Vec<InitialPacket>,
) -> Result<RecordedInitialFlight, ProfileError>
pub fn try_new( version: Version, destination_cid_len: u8, source_cid_len: u8, packets: Vec<InitialPacket>, ) -> Result<RecordedInitialFlight, ProfileError>
Admit a uniform-sized original burst with complete CRYPTO coverage. CID lengths describe expected fresh bindings; no CID values are retained.
pub fn destination_cid_len(&self) -> u8
pub fn destination_cid_len(&self) -> u8
Expected fresh destination connection ID length, in bytes.
pub fn source_cid_len(&self) -> u8
pub fn source_cid_len(&self) -> u8
Expected fresh source connection ID length, in bytes.
pub fn packets(&self) -> &[InitialPacket]
pub fn packets(&self) -> &[InitialPacket]
Original Initial packets in transmission order.
pub fn crypto_len(&self) -> usize
pub fn crypto_len(&self) -> usize
Required extent of the fresh Initial CRYPTO stream, in bytes.
pub fn packet(&self, number: u64) -> Option<&InitialPacket>
pub fn packet(&self, number: u64) -> Option<&InitialPacket>
Match an original packet number without a separate replay cursor.
Trait Implementations§
§impl Clone for RecordedInitialFlight
impl Clone for RecordedInitialFlight
§fn clone(&self) -> RecordedInitialFlight
fn clone(&self) -> RecordedInitialFlight
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 RecordedInitialFlight
impl Debug for RecordedInitialFlight
§impl<'de> Deserialize<'de> for RecordedInitialFlight
impl<'de> Deserialize<'de> for RecordedInitialFlight
§fn deserialize<D>(
deserializer: D,
) -> Result<RecordedInitialFlight, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
fn deserialize<D>(
deserializer: D,
) -> Result<RecordedInitialFlight, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
impl Eq for RecordedInitialFlight
§impl Hash for RecordedInitialFlight
impl Hash for RecordedInitialFlight
§impl PartialEq for RecordedInitialFlight
impl PartialEq for RecordedInitialFlight
§impl Serialize for RecordedInitialFlight
impl Serialize for RecordedInitialFlight
§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 RecordedInitialFlight
§impl TryFrom<&FirstFlight> for RecordedInitialFlight
Available on crate feature std only.
impl TryFrom<&FirstFlight> for RecordedInitialFlight
std only.§type Error = ProfileError
type Error = ProfileError
§fn try_from(
flight: &FirstFlight,
) -> Result<RecordedInitialFlight, <RecordedInitialFlight as TryFrom<&FirstFlight>>::Error>
fn try_from( flight: &FirstFlight, ) -> Result<RecordedInitialFlight, <RecordedInitialFlight as TryFrom<&FirstFlight>>::Error>
Auto Trait Implementations§
impl Freeze for RecordedInitialFlight
impl RefUnwindSafe for RecordedInitialFlight
impl Send for RecordedInitialFlight
impl Sync for RecordedInitialFlight
impl Unpin for RecordedInitialFlight
impl UnsafeUnpin for RecordedInitialFlight
impl UnwindSafe for RecordedInitialFlight
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