Struct TokioDetachGuard
pub struct TokioDetachGuard { /* private fields */ }Available on crate features
dial9 and tokio only.Expand description
Detaches a Tokio runtime from its recorder when this guard drops.
Created by Dial9HandleTokioExt::detach_tokio_runtime_on_drop. Keep one
guard alive for the runtime’s scope. Dropping any guard detaches that runtime
for its recorder; an earlier explicit detach is harmless.
The guard owns cloned Dial9 and Tokio handles, so it can be stored alongside the runtime without borrowing it. Its Tokio handle keeps the runtime’s drivers allocated until the guard drops, even if the runtime dropped first.
The guard stays on its creation thread. Create it on the thread that drives
a current_thread runtime or LocalRuntime
so detach can clear that thread’s cached runtime state.
ⓘ
use dial9_tokio_telemetry::telemetry::TokioDetachGuard;
fn require_send<T: Send>() {}
require_send::<TokioDetachGuard>();ⓘ
use dial9_tokio_telemetry::telemetry::TokioDetachGuard;
fn require_sync<T: Sync>() {}
require_sync::<TokioDetachGuard>();Trait Implementations§
§impl Debug for TokioDetachGuard
impl Debug for TokioDetachGuard
§impl Drop for TokioDetachGuard
impl Drop for TokioDetachGuard
Auto Trait Implementations§
impl !Send for TokioDetachGuard
impl !Sync for TokioDetachGuard
impl Forget for TokioDetachGuard
impl Freeze for TokioDetachGuard
impl RefUnwindSafe for TokioDetachGuard
impl Unpin for TokioDetachGuard
impl UnsafeUnpin for TokioDetachGuard
impl UnwindSafe for TokioDetachGuard
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
§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