Struct Dispatch
pub struct Dispatch {
subscriber: Kind<Arc<dyn Subscriber + Sync + Send>>,
}Expand description
Dispatch trace data to a Subscriber.
Fields§
§subscriber: Kind<Arc<dyn Subscriber + Sync + Send>>Implementations§
§impl Dispatch
impl Dispatch
pub fn new<S>(subscriber: S) -> Dispatch
pub fn new<S>(subscriber: S) -> Dispatch
Returns a Dispatch that forwards to the given Subscriber.
pub fn downgrade(&self) -> WeakDispatch
pub fn downgrade(&self) -> WeakDispatch
Creates a WeakDispatch from this Dispatch.
A WeakDispatch is similar to a Dispatch, but it does not prevent
the underlying Subscriber from being dropped. Instead, it only permits
access while other references to the Subscriber exist. This is equivalent
to the standard library’s Arc::downgrade method, but for Dispatch
rather than Arc.
The primary use for creating a WeakDispatch is to allow a Subscriber
to hold a cyclical reference to itself without creating a memory leak.
See here for details.
pub fn register_callsite(
&self,
metadata: &'static Metadata<'static>,
) -> Interest
pub fn register_callsite( &self, metadata: &'static Metadata<'static>, ) -> Interest
Registers a new callsite with this subscriber, returning whether or not the subscriber is interested in being notified about the callsite.
This calls the register_callsite function on the Subscriber
that this Dispatch forwards to.
pub fn new_span(&self, span: &Attributes<'_>) -> Id
pub fn new_span(&self, span: &Attributes<'_>) -> Id
Record the construction of a new span, returning a new ID for the span being constructed.
This calls the new_span function on the Subscriber that this
Dispatch forwards to.
pub fn record(&self, span: &Id, values: &Record<'_>)
pub fn record(&self, span: &Id, values: &Record<'_>)
Record a set of values on a span.
This calls the record function on the Subscriber that this
Dispatch forwards to.
pub fn record_follows_from(&self, span: &Id, follows: &Id)
pub fn record_follows_from(&self, span: &Id, follows: &Id)
Adds an indication that span follows from the span with the id
follows.
This calls the record_follows_from function on the Subscriber
that this Dispatch forwards to.
pub fn enabled(&self, metadata: &Metadata<'_>) -> bool
pub fn enabled(&self, metadata: &Metadata<'_>) -> bool
Returns true if a span with the specified metadata would be recorded.
This calls the enabled function on the Subscriber that this
Dispatch forwards to.
pub fn event(&self, event: &Event<'_>)
pub fn event(&self, event: &Event<'_>)
Records that an Event has occurred.
This calls the event function on the Subscriber that this
Dispatch forwards to.
pub fn enter(&self, span: &Id)
pub fn enter(&self, span: &Id)
Records that a span has been can_enter.
This calls the enter function on the Subscriber that this
Dispatch forwards to.
pub fn exit(&self, span: &Id)
pub fn exit(&self, span: &Id)
Records that a span has been exited.
This calls the exit function on the Subscriber that this
Dispatch forwards to.
pub fn clone_span(&self, id: &Id) -> Id
pub fn clone_span(&self, id: &Id) -> Id
Notifies the subscriber that a span ID has been cloned.
This function must only be called with span IDs that were returned by
this Dispatch’s new_span function. The tracing crate upholds
this guarantee and any other libraries implementing instrumentation APIs
must as well.
This calls the clone_span function on the Subscriber that this
Dispatch forwards to.
pub fn drop_span(&self, id: Id)
👎Deprecated since 0.1.2: use Dispatch::try_close instead
pub fn drop_span(&self, id: Id)
Dispatch::try_close insteadNotifies the subscriber that a span ID has been dropped.
This function must only be called with span IDs that were returned by
this Dispatch’s new_span function. The tracing crate upholds
this guarantee and any other libraries implementing instrumentation APIs
must as well.
This calls the drop_span function on the Subscriber that this
Dispatch forwards to.
Deprecated: The
try_close method is functionally identical, but returns
true if the span is now closed. It should be used
instead of this method.
pub fn try_close(&self, id: Id) -> bool
pub fn try_close(&self, id: Id) -> bool
Notifies the subscriber that a span ID has been dropped, and returns
true if there are now 0 IDs referring to that span.
This function must only be called with span IDs that were returned by
this Dispatch’s new_span function. The tracing crate upholds
this guarantee and any other libraries implementing instrumentation APIs
must as well.
This calls the try_close function on the Subscriber that this
Dispatch forwards to.
pub fn current_span(&self) -> Current
pub fn current_span(&self) -> Current
Returns a type representing this subscriber’s view of the current span.
This calls the current function on the Subscriber that this
Dispatch forwards to.
pub fn is<T>(&self) -> boolwhere
T: Any,
pub fn is<T>(&self) -> boolwhere
T: Any,
Returns true if this Dispatch forwards to a Subscriber of type
T.
pub fn downcast_ref<T>(&self) -> Option<&T>where
T: Any,
pub fn downcast_ref<T>(&self) -> Option<&T>where
T: Any,
Returns some reference to the Subscriber this Dispatch forwards to
if it is of type T, or None if it isn’t.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Dispatch
impl !RefUnwindSafe for Dispatch
impl Send for Dispatch
impl Sync for Dispatch
impl Unpin for Dispatch
impl !UnwindSafe for Dispatch
Blanket Implementations§
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Conv for T
impl<T> Conv for T
§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self to use its Binary implementation when Debug-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self to use its Display implementation when
Debug-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self to use its Octal implementation when Debug-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
§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> ⓘ
§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.