Struct tracing_capture::CapturedEvent

source ·
pub struct CapturedEvent<'a> { /* private fields */ }
Expand description

Captured tracing event containing a reference to its [Metadata] and values that the event was created with.

CapturedEvents are comparable and are partially ordered according to the capture order. Events are considered equal iff both are aliases of the same event; i.e., equality is reference-based rather than content-based. Two events from different Storages are not ordered and are always non-equal.

Values recorded with the event can be accessed by indexing or using Self::value(), or iterated over using Self::values().

§Examples

let event: CapturedEvent = // ...
// Accessing event metadata and fields:
assert_eq!(*event.metadata().level(), Level::INFO);
assert_eq!(event["return"], 42_u64);
assert_eq!(event.message(), Some("finished computations"));
assert!(event.value("err").is_none());
// Filtering unsigned integer values:
let numbers = event.values().filter_map(|(_, val)| val.as_uint());

// Accessing the parent span:
let parent_name = event.parent().unwrap().metadata().name();
assert!(event
    .ancestors()
    .any(|span| span.metadata().name() == "test"));

Implementations§

source§

impl<'a> CapturedEvent<'a>

source

pub fn metadata(&self) -> &'static Metadata<'static>

Provides a reference to the event metadata.

source

pub fn values(&self) -> impl Iterator<Item = (&'a str, &'a TracedValue)> + 'a

Iterates over values associated with the event.

source

pub fn value(&self, name: &str) -> Option<&'a TracedValue>

Returns a value for the specified field, or None if the value is not defined.

source

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

Returns the message recorded in this event, i.e., the value of the message field if it has a string presentation.

source

pub fn parent(&self) -> Option<CapturedSpan<'a>>

Returns the parent span for this event, or None if is not tied to a captured span.

source

pub fn ancestors(&self) -> impl Iterator<Item = CapturedSpan<'a>> + '_

Returns the references to the ancestor spans, starting from the direct parent and ending in one of root spans.

Trait Implementations§

source§

impl<'a> Captured<'a> for CapturedEvent<'a>

source§

fn metadata(&self) -> &'static Metadata<'static>

Provides a reference to the span / event metadata.
source§

fn value(&self, name: &str) -> Option<&'a TracedValue>

Returns a value for the specified field, or None if the value is not defined.
source§

fn parent(&self) -> Option<CapturedSpan<'a>>

Returns the reference to the parent span, if any.
source§

impl<'a> Clone for CapturedEvent<'a>

source§

fn clone(&self) -> CapturedEvent<'a>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for CapturedEvent<'_>

source§

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

Formats the value using the given formatter. Read more
source§

impl Index<&str> for CapturedEvent<'_>

§

type Output = TracedValue

The returned type after indexing.
source§

fn index(&self, index: &str) -> &Self::Output

Performs the indexing (container[index]) operation. Read more
source§

impl PartialEq for CapturedEvent<'_>

source§

fn eq(&self, other: &Self) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

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

impl PartialOrd for CapturedEvent<'_>

source§

fn partial_cmp(&self, other: &Self) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

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

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

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

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · source§

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

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

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

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl<P: Predicate<str>> Predicate<CapturedEvent<'_>> for MessagePredicate<P>

source§

fn eval(&self, variable: &CapturedEvent<'_>) -> bool

Execute this Predicate against variable, returning the resulting boolean.
source§

fn find_case( &self, expected: bool, variable: &CapturedEvent<'_> ) -> Option<Case<'_>>

Find a case that proves this predicate as expected when run against variable.
source§

impl<'a> Copy for CapturedEvent<'a>

source§

impl Eq for CapturedEvent<'_>

Auto Trait Implementations§

§

impl<'a> Freeze for CapturedEvent<'a>

§

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

§

impl<'a> Send for CapturedEvent<'a>

§

impl<'a> Sync for CapturedEvent<'a>

§

impl<'a> Unpin for CapturedEvent<'a>

§

impl<'a> !UnwindSafe for CapturedEvent<'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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

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> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

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

§

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>,

§

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.