Struct Http3Coalescing
pub struct Http3Coalescing { /* private fields */ }dns and http-backend and http and std and tcp only.Expand description
HTTPS origins that may share one HTTP/3 connection (RFC 9114 §3.3).
Insert it, shared through an Arc, on requests whose configured HTTP/3
HttpServiceCandidate targets a literal IP address. Such requests for any
of these origins share a connection to that same endpoint once its
certificate was verified for their host, under the same TLS policy and wire
preferences, as browsers coalesce origins that resolve to the same address.
Request authorities are unchanged. A connection that cannot be verified
serves only its own origin; a 421 Misdirected Request retires it.
Implementations§
§impl Http3Coalescing
impl Http3Coalescing
pub const MAX_ORIGINS: usize = 16
pub const MAX_ORIGINS: usize = 16
Most origins one set may hold: each is checked against every new certificate.
pub fn try_new(
origins: impl IntoIterator<Item = HttpOrigin>,
) -> Result<Http3Coalescing, Box<dyn Error + Sync + Send>>
pub fn try_new( origins: impl IntoIterator<Item = HttpOrigin>, ) -> Result<Http3Coalescing, Box<dyn Error + Sync + Send>>
Create a set of 1 to Self::MAX_ORIGINS distinct HTTPS origins.
Equal sets are equal regardless of order, so they share connections.
pub fn iter(&self) -> Iter<'_, HttpOrigin> ⓘ
pub fn iter(&self) -> Iter<'_, HttpOrigin> ⓘ
The origins, in canonical order.
Trait Implementations§
§impl Debug for Http3Coalescing
impl Debug for Http3Coalescing
impl Eq for Http3Coalescing
impl Extension for Http3Coalescing
§impl Hash for Http3Coalescing
impl Hash for Http3Coalescing
impl HttpExtension for Http3Coalescing
§impl PartialEq for Http3Coalescing
impl PartialEq for Http3Coalescing
impl StructuralPartialEq for Http3Coalescing
Auto Trait Implementations§
impl Freeze for Http3Coalescing
impl RefUnwindSafe for Http3Coalescing
impl Send for Http3Coalescing
impl Sync for Http3Coalescing
impl Unpin for Http3Coalescing
impl UnsafeUnpin for Http3Coalescing
impl UnwindSafe for Http3Coalescing
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
§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