elfo_core/
lib.rs

1#![warn(rust_2018_idioms, unreachable_pub)] // TODO: add `missing_docs`.
2#![cfg_attr(docsrs, feature(doc_cfg))]
3
4#[macro_use]
5extern crate static_assertions;
6#[macro_use]
7extern crate elfo_utils;
8
9// TODO: revise this list.
10pub use crate::{
11    actor::{ActorMeta, ActorStatus, ActorStatusKind},
12    addr::Addr,
13    config::Config,
14    context::{Context, RequestBuilder},
15    envelope::Envelope,
16    group::{ActorGroup, Schema},
17    init::{start, try_start},
18    local::{Local, MoveOwnership},
19    message::{Message, Request},
20    request_table::ResponseToken,
21    topology::Topology,
22};
23
24pub mod config;
25pub mod dumping;
26pub mod errors;
27pub mod group;
28pub mod logging;
29pub mod messages;
30pub mod node;
31pub mod routers;
32pub mod scope;
33pub mod signal;
34pub mod stream;
35#[cfg(feature = "unstable-stuck-detection")]
36pub mod stuck_detection;
37pub mod time;
38#[deprecated(note = "use `elfo::scope` instead")]
39pub mod tls;
40pub mod topology;
41pub mod tracing;
42
43#[deprecated(note = "use `elfo::tracing` instead")]
44pub mod trace_id {
45    pub use crate::tracing::TraceId;
46
47    pub fn generate() -> TraceId {
48        TraceId::generate()
49    }
50}
51
52mod actor;
53mod addr;
54mod address_book;
55mod context;
56mod demux;
57mod envelope;
58mod exec;
59mod init;
60mod local;
61mod macros;
62mod mailbox;
63mod memory_tracker;
64mod message;
65mod object;
66mod permissions;
67mod request_table;
68mod runtime;
69mod source;
70mod subscription;
71mod supervisor;
72mod telemetry;
73mod thread;
74
75#[doc(hidden)]
76pub mod _priv {
77    pub mod node {
78        pub fn set_node_no(node_no: crate::node::NodeNo) {
79            crate::node::set_node_no(node_no)
80        }
81    }
82
83    pub use crate::{
84        envelope::{AnyMessageBorrowed, AnyMessageOwned, EnvelopeBorrowed, EnvelopeOwned},
85        init::do_start,
86        message::{AnyMessage, MessageVTable, MESSAGE_LIST},
87        permissions::{AtomicPermissions, Permissions},
88    };
89    pub use linkme;
90    pub use metrics;
91    pub use serde;
92    pub use smallbox;
93    pub use static_assertions::assert_impl_all;
94}