Struct PeekInterrupt
pub struct PeekInterrupt { /* private fields */ }std only.Expand description
One-shot signal that tells protocol peeking to stop waiting for input.
Peekers find it in the Extensions of their input. Once triggered it
stays triggered: whether a peek then falls back, fails or keeps waiting
is decided by its PeekPolicy based on how far that peek got.
It is triggered explicitly via Self::trigger or by an attached
PeekInterruptSource, e.g. the first byte probed by PeekEgressFirstByteLayer.
Implementations§
§impl PeekInterrupt
impl PeekInterrupt
pub fn new() -> PeekInterrupt
pub fn new() -> PeekInterrupt
Create a new PeekInterrupt that is not yet triggered.
pub fn trigger(&self)
pub fn trigger(&self)
Trigger the interrupt, waking all peeks waiting on it.
pub fn is_triggered(&self) -> bool
pub fn is_triggered(&self) -> bool
Returns true once the interrupt was triggered.
Attached sources are only polled by Self::triggered.
pub fn attach(&self, source: impl PeekInterruptSource)
pub fn attach(&self, source: impl PeekInterruptSource)
Attach a source that triggers this interrupt once its condition is met.
pub async fn triggered(&self)
pub async fn triggered(&self)
Wait until the interrupt is triggered, driving attached sources.
pub fn poll_triggered(&self, cx: &mut Context<'_>) -> Poll<()>
pub fn poll_triggered(&self, cx: &mut Context<'_>) -> Poll<()>
Poll version of Self::triggered.
Trait Implementations§
§impl Debug for PeekInterrupt
impl Debug for PeekInterrupt
§impl Default for PeekInterrupt
impl Default for PeekInterrupt
§fn default() -> PeekInterrupt
fn default() -> PeekInterrupt
impl Extension for PeekInterrupt
Auto Trait Implementations§
impl !Freeze for PeekInterrupt
impl !RefUnwindSafe for PeekInterrupt
impl !UnwindSafe for PeekInterrupt
impl Forget for PeekInterrupt
impl Send for PeekInterrupt
impl Sync for PeekInterrupt
impl Unpin for PeekInterrupt
impl UnsafeUnpin for PeekInterrupt
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<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