Struct PeekEgressFirstByteLayer
#[non_exhaustive]pub struct PeekEgressFirstByteLayer;Available on crate feature
std only.Expand description
A Layer that triggers the PeekInterrupt of a BridgeIo as soon
as its egress sends a first byte (or closes) while the ingress is peeked.
This lets ingress peekers stop waiting for a client that will not speak
first, e.g. for server-first protocols such as SMTP or SSH, instead of
relying on a timeout. See PeekEgressFirstByteService.
Implementations§
§impl PeekEgressFirstByteLayer
impl PeekEgressFirstByteLayer
pub const fn new() -> PeekEgressFirstByteLayer
pub const fn new() -> PeekEgressFirstByteLayer
Create a new PeekEgressFirstByteLayer.
Trait Implementations§
§impl Clone for PeekEgressFirstByteLayer
impl Clone for PeekEgressFirstByteLayer
§fn clone(&self) -> PeekEgressFirstByteLayer
fn clone(&self) -> PeekEgressFirstByteLayer
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 Debug for PeekEgressFirstByteLayer
impl Debug for PeekEgressFirstByteLayer
§impl Default for PeekEgressFirstByteLayer
impl Default for PeekEgressFirstByteLayer
§fn default() -> PeekEgressFirstByteLayer
fn default() -> PeekEgressFirstByteLayer
Returns the “default value” for a type. Read more
§impl<S> Layer<S> for PeekEgressFirstByteLayer
impl<S> Layer<S> for PeekEgressFirstByteLayer
§type Service = PeekEgressFirstByteService<S>
type Service = PeekEgressFirstByteService<S>
The service produced by the layer.
§fn layer(&self, inner: S) -> <PeekEgressFirstByteLayer as Layer<S>>::Service
fn layer(&self, inner: S) -> <PeekEgressFirstByteLayer 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 Forget for PeekEgressFirstByteLayer
impl Freeze for PeekEgressFirstByteLayer
impl RefUnwindSafe for PeekEgressFirstByteLayer
impl Send for PeekEgressFirstByteLayer
impl Sync for PeekEgressFirstByteLayer
impl Unpin for PeekEgressFirstByteLayer
impl UnsafeUnpin for PeekEgressFirstByteLayer
impl UnwindSafe for PeekEgressFirstByteLayer
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