1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
//! # dcontext
//!
//! Distributed context propagation for Rust.
//!
//! `dcontext` provides a scoped, type-safe key–value store that travels with
//! the execution flow — across function calls, async/sync boundaries, thread
//! spawns, and even process boundaries via serialization.
//!
//! ## Quick Start
//!
//! ```rust
//! use dcontext::{RegistryBuilder, initialize};
//! use serde::{Serialize, Deserialize};
//!
//! #[derive(Clone, Default, Debug, Serialize, Deserialize)]
//! struct RequestId(String);
//!
//! # fn main() {
//! let mut builder = RegistryBuilder::new();
//! builder.register::<RequestId>("request_id");
//! initialize(builder);
//!
//! let _guard = dcontext::sync_ctx::push_scope("ingress");
//! dcontext::sync_ctx::set_context("request_id", RequestId("req-123".into()));
//!
//! let rid: Option<RequestId> = dcontext::sync_ctx::get_context("request_id");
//! assert_eq!(rid.unwrap().0, "req-123");
//!
//! let chain = dcontext::sync_ctx::scope_chain();
//! assert_eq!(chain, vec!["ingress"]);
//! # }
//! ```
//!
//! Use [`sync_ctx`] for thread-local context and [`async_ctx`] for
//! task-local context. See [`sync_ctx::serialize_context`] and
//! [`async_ctx::serialize_context`] for cross-process propagation.
pub
// Re-export public types
pub use ContextError;
pub use ScopeGuard;
pub use ContextSnapshot;
pub use ContextKey;
// ── Registration ───────────────────────────────────────────────
pub use ;
// Re-export free-standing registration functions for internal tests only.
pub use ;
// ── Scope management ───────────────────────────────────────────
pub use ;
// ── Context inheritance (spawn helpers) ───────────────────────
pub use ;
// ── Serialization (helpers) ───────────────────────────────────
pub use ;
// ── Configuration ──────────────────────────────────────────────
pub use ;
// ── Tests ──────────────────────────────────────────────────────