Struct ConnectUdpMitmLayer
pub struct ConnectUdpMitmLayer<M = bool> { /* private fields */ }Available on crate feature
masque only.Expand description
Explicitly select CONNECT-UDP datagrams in an HTTP/3 MITM relay.
Configure forwarding with Http3MitmRelay::with_datagram_relay.
This layer stores only protocol metadata, never services.
Both QUIC transports must also enable bounded datagrams. No other upgrade
token acquires Capsule semantics from this middleware.
Implementations§
§impl ConnectUdpMitmLayer
impl ConnectUdpMitmLayer
pub const fn new() -> ConnectUdpMitmLayer
pub const fn new() -> ConnectUdpMitmLayer
Select all CONNECT-UDP handshakes.
§impl<M> ConnectUdpMitmLayer<M>
impl<M> ConnectUdpMitmLayer<M>
pub fn with_matcher<N>(self, matcher: N) -> ConnectUdpMitmLayer<N>
pub fn with_matcher<N>(self, matcher: N) -> ConnectUdpMitmLayer<N>
Select sessions with an ordinary Rama matcher after protocol classification.
A non-match is not an access denial; use HTTP middleware to reject requests.
Matcher metadata is request-local. Use HTTP middleware to copy values
for the upgraded ingress into the request’s own
HttpUpgradeMitmRelayExtensions selection.
Trait Implementations§
§impl<M> Clone for ConnectUdpMitmLayer<M>where
M: Clone,
impl<M> Clone for ConnectUdpMitmLayer<M>where
M: Clone,
§fn clone(&self) -> ConnectUdpMitmLayer<M>
fn clone(&self) -> ConnectUdpMitmLayer<M>
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 more§impl<M> Debug for ConnectUdpMitmLayer<M>where
M: Debug,
impl<M> Debug for ConnectUdpMitmLayer<M>where
M: Debug,
§impl Default for ConnectUdpMitmLayer
impl Default for ConnectUdpMitmLayer
§fn default() -> ConnectUdpMitmLayer
fn default() -> ConnectUdpMitmLayer
Returns the “default value” for a type. Read more
§impl<S, M> Layer<S> for ConnectUdpMitmLayer<M>where
M: Clone,
impl<S, M> Layer<S> for ConnectUdpMitmLayer<M>where
M: Clone,
§type Service = ConnectUdpMitm<S, M>
type Service = ConnectUdpMitm<S, M>
The service produced by the layer.
§fn layer(&self, inner: S) -> <ConnectUdpMitmLayer<M> as Layer<S>>::Service
fn layer(&self, inner: S) -> <ConnectUdpMitmLayer<M> as Layer<S>>::Service
Wrap the given service with the middleware, returning a new service.
§fn into_layer(self, inner: S) -> Self::Service
fn into_layer(self, inner: S) -> Self::Service
Same as
layer but consuming self after the service was created. Read moreAuto Trait Implementations§
impl<M> Freeze for ConnectUdpMitmLayer<M>where
M: Freeze,
impl<M> RefUnwindSafe for ConnectUdpMitmLayer<M>where
M: RefUnwindSafe,
impl<M> Send for ConnectUdpMitmLayer<M>where
M: Send,
impl<M> Sync for ConnectUdpMitmLayer<M>where
M: Sync,
impl<M> Unpin for ConnectUdpMitmLayer<M>where
M: Unpin,
impl<M> UnsafeUnpin for ConnectUdpMitmLayer<M>where
M: UnsafeUnpin,
impl<M> UnwindSafe for ConnectUdpMitmLayer<M>where
M: UnwindSafe,
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<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