elfo_core/
tls.rs

1use std::{future::Future, sync::Arc};
2
3use crate::{actor::ActorMeta, addr::Addr, scope::ScopeGroupShared, trace_id::TraceId};
4
5#[deprecated(note = "use `elfo::scope::trace_id()` instead")]
6pub fn trace_id() -> TraceId {
7    crate::scope::trace_id()
8}
9
10#[deprecated(note = "use `elfo::scope::try_trace_id()` instead")]
11pub fn try_trace_id() -> Option<TraceId> {
12    crate::scope::try_trace_id()
13}
14
15#[deprecated(note = "use `elfo::scope::set_trace_id()` instead")]
16pub fn set_trace_id(trace_id: TraceId) {
17    crate::scope::set_trace_id(trace_id);
18}
19
20#[deprecated(note = "use `elfo::scope::meta()` instead")]
21pub fn meta() -> Arc<ActorMeta> {
22    crate::scope::meta()
23}
24
25#[deprecated(note = "use `elfo::scope::try_meta()` instead")]
26pub fn try_meta() -> Option<Arc<ActorMeta>> {
27    crate::scope::try_meta()
28}
29
30#[deprecated(note = "use `elfo::scope` instead")]
31pub async fn scope<F: Future>(meta: Arc<ActorMeta>, trace_id: TraceId, f: F) -> F::Output {
32    #[allow(deprecated)]
33    let scope = make_stupid_scope(meta);
34    scope.set_trace_id(trace_id);
35    scope.within(f).await
36}
37
38#[deprecated(note = "use `elfo::scope` instead")]
39pub fn sync_scope<R>(meta: Arc<ActorMeta>, trace_id: TraceId, f: impl FnOnce() -> R) -> R {
40    #[allow(deprecated)]
41    let scope = make_stupid_scope(meta);
42    scope.set_trace_id(trace_id);
43    scope.sync_within(f)
44}
45
46fn make_stupid_scope(meta: Arc<ActorMeta>) -> crate::scope::Scope {
47    crate::scope::Scope::new(
48        crate::scope::trace_id(),
49        Addr::NULL,
50        meta,
51        Arc::new(ScopeGroupShared::new(Addr::NULL)),
52    )
53}