Struct InspectionState
pub struct InspectionState(/* private fields */);Available on crate feature
inspect only.Expand description
Process-wide runtime state for inspection.
Capture writes remain lock-free. Pausing prevents new permits and then waits for writers that already hold one, so a successful pause response is also a capture-write quiescence boundary.
Implementations§
§impl InspectionState
impl InspectionState
pub fn is_enabled(&self) -> bool
pub fn try_capture(&self) -> Option<InspectionPermit>
pub fn try_capture(&self) -> Option<InspectionPermit>
Enter one capture-write operation if recording is still enabled.
The compare-and-exchange closes the race with pause: either the
writer count wins first and is awaited, or the paused bit wins first
and this operation does not start.
pub fn session(&self) -> Option<InspectionSession>
pub fn session(&self) -> Option<InspectionSession>
Register a cancellable MITM session before touching protocol data. Subscribe first so a concurrent pause cannot miss this session.
pub async fn pause(&self) -> bool
pub async fn pause(&self) -> bool
Stop new inspection, cancel MITM sessions and drain capture writes.
pub async fn resume(&self) -> bool
Trait Implementations§
§impl Clone for InspectionState
impl Clone for InspectionState
§fn clone(&self) -> InspectionState
fn clone(&self) -> InspectionState
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 InspectionState
impl Debug for InspectionState
§impl Default for InspectionState
impl Default for InspectionState
§fn default() -> InspectionState
fn default() -> InspectionState
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl !RefUnwindSafe for InspectionState
impl !UnwindSafe for InspectionState
impl Freeze for InspectionState
impl Send for InspectionState
impl Sync for InspectionState
impl Unpin for InspectionState
impl UnsafeUnpin for InspectionState
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