trace-context

Extract and inject W3C TraceContext headers.

Installation

cargo add trace-context

Example usage

```rust let mut headers = http::HeaderMap::new(); headers.insert("traceparent", "00-0af7651916cd43dd8448eb211c80319c-00f067aa0ba902b7-01".parse().unwrap());

let context = trace_context::TraceContext::extract(&headers).unwrap();

asserteq!(context.traceid(), u128::fromstrradix("0af7651916cd43dd8448eb211c80319c", 16).unwrap()); asserteq!(context.parentid(), u64::fromstrradix("00f067aa0ba902b7", 16).ok()); assert_eq!(context.sampled(), true); ```

Safety

This crate uses #![deny(unsafe_code)] to ensure everything is implemented in 100% Safe Rust.

License

MIT OR Apache-2.0