pub trait BaggageExt {
    // Required methods
    fn with_baggage<T>(&self, baggage: T) -> Self
       where T: Into<Baggage>;
    fn current_with_baggage<T>(baggage: T) -> Self
       where T: Into<Baggage>;
    fn with_cleared_baggage(&self) -> Self;
    fn baggage(&self) -> &Baggage;
}
Available on crate feature opentelemetry only.
Expand description

Methods for sorting and retrieving baggage data in a context.

Required Methods§

Source

fn with_baggage<T>(&self, baggage: T) -> Self
where T: Into<Baggage>,

Returns a clone of the given context with the included name/value pairs.

§Examples
use opentelemetry::{baggage::{Baggage, BaggageExt}, Context, KeyValue, StringValue};

// Explicit `Baggage` creation
let mut baggage = Baggage::new();
let _ = baggage.insert("my-name", "my-value");

let cx = Context::map_current(|cx| {
    cx.with_baggage(baggage)
});

// Passing an iterator
let cx = Context::map_current(|cx| {
    cx.with_baggage([KeyValue::new("my-name", "my-value")])
});

assert_eq!(
    cx.baggage().get("my-name"),
    Some(&StringValue::from("my-value")),
)
Source

fn current_with_baggage<T>(baggage: T) -> Self
where T: Into<Baggage>,

Returns a clone of the current context with the included name/value pairs.

§Examples
use opentelemetry::{baggage::{Baggage, BaggageExt}, Context, StringValue};

let mut baggage = Baggage::new();
let _ = baggage.insert("my-name", "my-value");

let cx = Context::current_with_baggage(baggage);

assert_eq!(
    cx.baggage().get("my-name"),
    Some(&StringValue::from("my-value")),
)
Source

fn with_cleared_baggage(&self) -> Self

Returns a clone of the given context with no baggage.

§Examples
use opentelemetry::{baggage::BaggageExt, Context};

let cx = Context::map_current(|cx| cx.with_cleared_baggage());

assert_eq!(cx.baggage().len(), 0);
Source

fn baggage(&self) -> &Baggage

Returns a reference to this context’s baggage, or the default empty baggage if none has been set.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§