Skip to main content

with_context

Function with_context 

Source
pub fn with_context<F, R>(context: TraceContext, f: F) -> R
where F: FnOnce() -> R,
Expand description

Execute a function with a specific trace context

Examples found in repository?
examples/integrated_context_demo.rs (lines 20-23)
11fn main() {
12    println!("🔌 observability_core context demo");
13    println!("==================================\n");
14
15    println!("Before: {:?}", get_current_context());
16
17    let root = TraceContext::new_root();
18    let trace_id = root.trace_id.clone();
19
20    let out = with_context(root, || {
21        println!("Inside: {:?}", get_current_context());
22        "ok"
23    });
24
25    println!("After: {:?}", get_current_context());
26    println!("Result: {out} (trace_id={trace_id})");
27}
More examples
Hide additional examples
examples/raii_scoped_context_demo.rs (lines 18-21)
9fn main() {
10    println!("🔒 Scoped trace context demo");
11    println!("============================\n");
12
13    println!("Before: {:?}", get_current_context());
14
15    let ctx = TraceContext::new_root();
16    let tid = ctx.trace_id.clone();
17
18    let out = with_context(ctx, || {
19        log::info!("Processing request");
20        get_current_context().unwrap().trace_id
21    });
22
23    println!("Inside returned trace_id={out}");
24    println!("Expected trace_id={tid}");
25    println!("After: {:?}", get_current_context());
26}