🛈 Note: This is pre-release documentation for the upcoming tracing 0.2.0 ecosystem.

For the release documentation, please see docs.rs, instead.

tracing_mock::field

Struct ExpectedFields

Source
pub struct ExpectedFields { /* private fields */ }
Expand description

An expectation for multiple fields.

For a detailed description and examples, see the documentation for the methods and the field module.

Implementations§

Source§

impl ExpectedFields

Source

pub fn and(self, field: ExpectedField) -> Self

Adds an additional ExpectedField to be matched.

All fields must match, if any of them are not present, or if the value for any field is different, the expectation will fail.

This method performs the same function as ExpectedField::and, but applies in the case where there are already multiple fields expected.

§Examples
use tracing_mock::{collector, expect};

let event = expect::event().with_fields(
    expect::field("field")
        .with_value(&"value")
        .and(expect::field("another_field").with_value(&42))
        .and(expect::field("a_third_field").with_value(&true)),
);

let (collector, handle) = collector::mock()
    .event(event)
    .run_with_handle();

tracing::collect::with_default(collector, || {
    tracing::info!(
        field = "value",
        another_field = 42,
        a_third_field = true,
    );
});

handle.assert_finished();

If any of the expected fields are not present on the recorded event, the test will fail:

use tracing_mock::{collector, expect};

let event = expect::event().with_fields(
    expect::field("field")
        .with_value(&"value")
        .and(expect::field("another_field").with_value(&42))
        .and(expect::field("a_third_field").with_value(&true)),
);

let (collector, handle) = collector::mock()
    .event(event)
    .run_with_handle();

tracing::collect::with_default(collector, || {
    tracing::info!(
        field = "value",
        a_third_field = true,
    );
});

handle.assert_finished();
Source

pub fn only(self) -> Self

Indicates that no fields other than those specified should be expected.

This method performs the same function as ExpectedField::only, but applies in the case where there are multiple fields expected.

§Examples

The following test will pass, even though additional fields are recorded on the event.

use tracing_mock::{collector, expect};

let event = expect::event().with_fields(
    expect::field("field")
        .with_value(&"value")
        .and(expect::field("another_field").with_value(&42)),
);

let (collector, handle) = collector::mock()
    .event(event)
    .run_with_handle();

tracing::collect::with_default(collector, || {
    tracing::info!(
        field = "value",
        another_field = 42,
        a_third_field = true,
    );
});

handle.assert_finished();

If we include only on the ExpectedFields then the test will fail:

use tracing_mock::{collector, expect};

let event = expect::event().with_fields(
    expect::field("field")
        .with_value(&"value")
        .and(expect::field("another_field").with_value(&42))
        .only(),
);

let (collector, handle) = collector::mock()
    .event(event)
    .run_with_handle();

tracing::collect::with_default(collector, || {
    tracing::info!(
        field = "value",
        another_field = 42,
        a_third_field = true,
    );
});

handle.assert_finished();

Trait Implementations§

Source§

impl Debug for ExpectedFields

Source§

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

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

impl Default for ExpectedFields

Source§

fn default() -> ExpectedFields

Returns the “default value” for a type. Read more
Source§

impl Display for ExpectedFields

Source§

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

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

impl From<ExpectedField> for ExpectedFields

Source§

fn from(field: ExpectedField) -> Self

Converts to this type from the input type.
Source§

impl PartialEq for ExpectedFields

Source§

fn eq(&self, other: &ExpectedFields) -> 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.
Source§

impl Eq for ExpectedFields

Source§

impl StructuralPartialEq for ExpectedFields

Auto Trait Implementations§

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

Source§

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

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

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> ToString for T
where T: Display + ?Sized,

Source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
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.
Source§

impl<T> WithCollector for T

Source§

fn with_collector<C>(self, collector: C) -> WithDispatch<Self>
where C: Into<Dispatch>,

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

fn with_current_collector(self) -> WithDispatch<Self>

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