pub enum Tree {
    Event(Event),
    Span(Span),
}
Expand description

A node in the log tree, consisting of either a Span or an Event.

The inner types can be extracted through a match statement. Alternatively, the event and span methods provide a more ergonomic way to access the inner types in unit tests when combined with the capture function.

Variants

Event(Event)

An Event leaf node.

Span(Span)

A Span inner node.

Implementations

Returns a reference to the inner Event if the tree is an event.

Errors

This function returns an error if the Tree contains the Span variant.

Examples

Inspecting a Tree returned from capture:

use tracing::{info, info_span};
use tracing_forest::tree::{Tree, Event};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let logs: Vec<Tree> = tracing_forest::capture()
        .build()
        .on(async {
            info!("some information");
        })
        .await;

    assert!(logs.len() == 1);

    let event: &Event = logs[0].event()?;
    assert!(event.message() == Some("some information"));

    Ok(())
}

Returns a reference to the inner Span if the tree is a span.

Errors

This function returns an error if the Tree contains the Event variant.

Examples

Inspecting a Tree returned from capture:

use tracing::{info, info_span};
use tracing_forest::tree::{Tree, Span};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let logs: Vec<Tree> = tracing_forest::capture()
        .build()
        .on(async {
            info_span!("my_span").in_scope(|| {
                info!("inside the span");
            });
        })
        .await;

    assert!(logs.len() == 1);

    let my_span: &Span = logs[0].span()?;
    assert!(my_span.name() == "my_span");
    Ok(())
}

Trait Implementations

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

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

Calls U::from(self).

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

The resulting type after obtaining ownership.
Creates owned data from borrowed data, usually by cloning. Read more
Uses borrowed data to replace owned data, usually by cloning. Read more
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.
Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more