Struct Metadata

pub struct Metadata<'a> { /* private fields */ }
Expand description

Metadata describing a span or event.

All spans and events have the following metadata:

  • A name, represented as a static string.
  • A target, a string that categorizes part of the system where the span or event occurred. The tracing macros default to using the module path where the span or event originated as the target, but it may be overridden.
  • A verbosity level. This determines how verbose a given span or event is, and allows enabling or disabling more verbose diagnostics situationally. See the documentation for the Level type for details.
  • The names of the fields defined by the span or event.
  • Whether the metadata corresponds to a span or event.

In addition, the following optional metadata describing the source code location where the span or event originated may be provided:

Metadata is used by Subscribers when filtering spans and events, and it may also be used as part of their data payload.

When created by the event! or span! macro, the metadata describing a particular event or span is constructed statically and exists as a single static instance. Thus, the overhead of creating the metadata is significantly lower than that of creating the actual span. Therefore, filtering is based on metadata, rather than on the constructed span.

§Equality

In well-behaved applications, two Metadata with equal callsite identifiers will be equal in all other ways (i.e., have the same name, target, etc.). Consequently, in release builds, Metadata::eq only checks that its arguments have equal callsites. However, the equality of Metadata’s other fields is checked in debug builds.

Implementations§

§

impl<'a> Metadata<'a>

pub const fn new( name: &'static str, target: &'a str, level: Level, file: Option<&'a str>, line: Option<u32>, module_path: Option<&'a str>, fields: FieldSet, kind: Kind, ) -> Metadata<'a>

Available on crate feature cpu_os_threads only.

Construct new metadata for a span or event, with a name, target, level, field names, and optional source code location.

pub fn fields(&self) -> &FieldSet

Available on crate feature cpu_os_threads only.

Returns the names of the fields on the described span or event.

pub fn level(&self) -> &Level

Available on crate feature cpu_os_threads only.

Returns the level of verbosity of the described span or event.

pub fn name(&self) -> &'static str

Available on crate feature cpu_os_threads only.

Returns the name of the span.

pub fn target(&self) -> &'a str

Available on crate feature cpu_os_threads only.

Returns a string describing the part of the system where the span or event that this metadata describes occurred.

Typically, this is the module path, but alternate targets may be set when spans or events are constructed.

pub fn module_path(&self) -> Option<&'a str>

Available on crate feature cpu_os_threads only.

Returns the path to the Rust module where the span occurred, or None if the module path is unknown.

pub fn file(&self) -> Option<&'a str>

Available on crate feature cpu_os_threads only.

Returns the name of the source code file where the span occurred, or None if the file is unknown

pub fn line(&self) -> Option<u32>

Available on crate feature cpu_os_threads only.

Returns the line number in the source code file where the span occurred, or None if the line number is unknown.

pub fn callsite(&self) -> Identifier

Available on crate feature cpu_os_threads only.

Returns an opaque Identifier that uniquely identifies the callsite this Metadata originated from.

pub fn is_event(&self) -> bool

Available on crate feature cpu_os_threads only.

Returns true if the callsite kind is Event.

pub fn is_span(&self) -> bool

Available on crate feature cpu_os_threads only.

Return true if the callsite kind is Span.

Trait Implementations§

§

impl<'a> Debug for Metadata<'a>

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl<'a> PartialEq for Metadata<'a>

§

fn eq(&self, other: &Metadata<'a>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
§

impl<'a> Eq for Metadata<'a>

Auto Trait Implementations§

§

impl<'a> Freeze for Metadata<'a>

§

impl<'a> !RefUnwindSafe for Metadata<'a>

§

impl<'a> Send for Metadata<'a>

§

impl<'a> Sync for Metadata<'a>

§

impl<'a> Unpin for Metadata<'a>

§

impl<'a> !UnwindSafe for Metadata<'a>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Downcast<T> for T

§

fn downcast(&self) -> &T

§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
§

impl<SS, SP> SupersetOf<SS> for SP
where SS: SubsetOf<SP>,

§

fn to_subset(&self) -> Option<SS>

The inverse inclusion map: attempts to construct self from the equivalent element of its superset. Read more
§

fn is_in_subset(&self) -> bool

Checks if self is actually part of its subset T (and can be converted to it).
§

fn to_subset_unchecked(&self) -> SS

Use with care! Same as self.to_subset but without any property checks. Always succeeds.
§

fn from_subset(element: &SS) -> SP

The inclusion map: converts self to the equivalent element of its superset.
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> Upcast<T> for T

§

fn upcast(&self) -> Option<&T>

§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
§

impl<T> Ungil for T
where T: Send,

§

impl<T> WasmNotSend for T
where T: Send,

§

impl<T> WasmNotSendSync for T
where T: WasmNotSend + WasmNotSync,

§

impl<T> WasmNotSync for T
where T: Sync,