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
use std::{cell::Cell, future::Future, sync::Arc};
use crate::{addr::Addr, object::ObjectMeta, trace_id::TraceId};
tokio::task_local! {
static META: Arc<ObjectMeta>;
static TRACE_ID: Cell<TraceId>;
}
#[deprecated(note = "use `elfo::scope::trace_id()` instead")]
pub fn trace_id() -> TraceId {
crate::scope::trace_id()
}
#[deprecated(note = "use `elfo::scope::try_trace_id()` instead")]
pub fn try_trace_id() -> Option<TraceId> {
crate::scope::try_trace_id()
}
#[deprecated(note = "use `elfo::scope::set_trace_id()` instead")]
pub fn set_trace_id(trace_id: TraceId) {
crate::scope::set_trace_id(trace_id);
}
#[deprecated(note = "use `elfo::scope::meta()` instead")]
pub fn meta() -> Arc<ObjectMeta> {
crate::scope::meta()
}
#[deprecated(note = "use `elfo::scope::try_meta()` instead")]
pub fn try_meta() -> Option<Arc<ObjectMeta>> {
crate::scope::try_meta()
}
#[deprecated(note = "use `elfo::scope` instead")]
pub async fn scope<F: Future>(meta: Arc<ObjectMeta>, trace_id: TraceId, f: F) -> F::Output {
#[allow(deprecated)]
let scope = make_stupid_scope(meta);
scope.set_trace_id(trace_id);
scope.within(f).await
}
#[deprecated(note = "use `elfo::scope` instead")]
pub fn sync_scope<R>(meta: Arc<ObjectMeta>, trace_id: TraceId, f: impl FnOnce() -> R) -> R {
#[allow(deprecated)]
let scope = make_stupid_scope(meta);
scope.set_trace_id(trace_id);
scope.sync_within(f)
}
fn make_stupid_scope(meta: Arc<ObjectMeta>) -> crate::scope::Scope {
crate::scope::Scope::new(
Addr::NULL,
Addr::NULL,
meta,
Default::default(),
Default::default(),
)
}