# tracing_core::metadata::Metadata - Rust
API documentation for the Rust `Metadata` struct in crate `tracing_core`.
Keywords: rust, rustlang, rust-lang, Metadata

# Struct tracing_core::metadata::Metadata [−] [src]

    pub struct Metadata<'a> { /* fields omitted */ }

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.
- 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:

- The file name
- The line number
- The module path

Metadata is used by `Subscriber`s 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.

ⓘNote

    Note: Although instances of Metadata cannot
    be compared directly, they provide a method
    id, returning an opaque
    callsite identifier  which uniquely identifies the callsite where the metadata
    originated. This can be used to determine if two Metadata correspond to
    the same callsite.

## Implementations

### `impl<'a> Metadata<'a>` [src]

#### `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
) -> Self` [src]

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` [src]

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

#### `pub fn level(&self) -> &Level` [src]

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

#### `pub fn name(&self) -> &'static str` [src]

Returns the name of the span.

#### `pub fn target(&self) -> &'a str` [src]

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>` [src]

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>` [src]

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>` [src]

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` [src]

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

#### `pub fn is_event(&self) -> bool` [src]

Returns true if the callsite kind is `Event`.

#### `pub fn is_span(&self) -> bool` [src]

Return true if the callsite kind is `Span`.

## Trait Implementations

### `impl<'a> Debug for Metadata<'a>` [src]

#### `fn fmt(&self, f: &mut Formatter<'_>) -> Result` [src]

Formats the value using the given formatter. Read more

## Auto Trait Implementations

### `impl<'a> !RefUnwindSafe for Metadata<'a>` [src]

### `impl<'a> Send for Metadata<'a>` [src]

### `impl<'a> Sync for Metadata<'a>` [src]

### `impl<'a> Unpin for Metadata<'a>` [src]

### `impl<'a> !UnwindSafe for Metadata<'a>` [src]

## Blanket Implementations

### `impl<T> Any for T where
T: 'static + ?Sized,` [src]

#### `pub fn type_id(&self) -> TypeId` [src]

Gets the `TypeId` of `self`. Read more

### `impl<T> Borrow<T> for T where
T: ?Sized,` [src]

#### `pub fn borrow(&self) -> &T` [src]

Immutably borrows from an owned value. Read more

### `impl<T> BorrowMut<T> for T where
T: ?Sized,` [src]

#### `pub fn borrow_mut(&mut self) -> &mut T` [src]

Mutably borrows from an owned value. Read more

### `impl<T> From<T> for T` [src]

#### `pub fn from(t: T) -> T` [src]

Performs the conversion.

### `impl<T, U> Into<U> for T where
U: From<T>,` [src]

#### `pub fn into(self) -> U` [src]

Performs the conversion.

### `impl<T, U> TryFrom<U> for T where
U: Into<T>,` [src]

#### `type Error = Infallible`

The type returned in the event of a conversion error.

#### `pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>` [src]

Performs the conversion.

### `impl<T, U> TryInto<U> for T where
U: TryFrom<T>,` [src]

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

The type returned in the event of a conversion error.

#### `pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>` [src]

Performs the conversion.