Struct QuarterStreamId
pub struct QuarterStreamId(/* private fields */);Available on crate features
http and std only.Expand description
The Quarter Stream ID prefix of an HTTP/3 datagram (RFC 9297 §2.1).
It names the client-initiated bidirectional request stream the datagram belongs to, divided by
four. Values above 2^60 - 1 cannot name a legal stream and are rejected on construction.
Implementations§
§impl QuarterStreamId
impl QuarterStreamId
pub const MAX: QuarterStreamId
pub const MAX: QuarterStreamId
The largest legal value, 2^60 - 1 (RFC 9297 §2.1).
pub const fn new(value: u64) -> Result<QuarterStreamId, InvalidQuarterStreamId>
pub const fn new(value: u64) -> Result<QuarterStreamId, InvalidQuarterStreamId>
Construct from its raw value.
pub fn from_request_stream(
stream: StreamId,
) -> Result<QuarterStreamId, InvalidQuarterStreamId>
pub fn from_request_stream( stream: StreamId, ) -> Result<QuarterStreamId, InvalidQuarterStreamId>
The Quarter Stream ID of a request stream, which must be client-initiated bidirectional.
pub fn request_stream(self) -> StreamId
pub fn request_stream(self) -> StreamId
The associated request stream.
pub fn split_datagram(
datagram: Bytes,
) -> Result<(QuarterStreamId, Bytes), InvalidQuarterStreamId>
pub fn split_datagram( datagram: Bytes, ) -> Result<(QuarterStreamId, Bytes), InvalidQuarterStreamId>
Split a received QUIC DATAGRAM payload into its Quarter Stream ID and HTTP datagram
payload. The payload shares datagram’s storage.
Both a truncated prefix and a value above Self::MAX are connection errors of type
H3_DATAGRAM_ERROR.
Trait Implementations§
§impl Clone for QuarterStreamId
impl Clone for QuarterStreamId
§fn clone(&self) -> QuarterStreamId
fn clone(&self) -> QuarterStreamId
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 QuarterStreamId
§impl Debug for QuarterStreamId
impl Debug for QuarterStreamId
impl Eq for QuarterStreamId
§impl Hash for QuarterStreamId
impl Hash for QuarterStreamId
§impl Ord for QuarterStreamId
impl Ord for QuarterStreamId
§fn cmp(&self, other: &QuarterStreamId) -> Ordering
fn cmp(&self, other: &QuarterStreamId) -> Ordering
1.21.0 (const: unstable) · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Compares and returns the maximum of two values. Read more
1.21.0 (const: unstable) · Source§fn min(self, other: Self) -> Selfwhere
Self: Sized,
fn min(self, other: Self) -> Selfwhere
Self: Sized,
Compares and returns the minimum of two values. Read more
§impl PartialEq for QuarterStreamId
impl PartialEq for QuarterStreamId
§impl PartialOrd for QuarterStreamId
impl PartialOrd for QuarterStreamId
impl StructuralPartialEq for QuarterStreamId
Auto Trait Implementations§
impl Freeze for QuarterStreamId
impl RefUnwindSafe for QuarterStreamId
impl Send for QuarterStreamId
impl Sync for QuarterStreamId
impl Unpin for QuarterStreamId
impl UnsafeUnpin for QuarterStreamId
impl UnwindSafe for QuarterStreamId
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
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<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
§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
Checks if this value is equivalent to the given key. Read more
§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
Compare self to
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
Checks if this value is equivalent to the given key. Read more
§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> ⓘ
Converts
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> ⓘ
Converts
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>
Wrap the input message
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>
Create a new
Policy that returns Action::Follow only if self and other return
Action::Follow. Read more