Skip to main content

elfo_core/
lib.rs

1#![allow(missing_docs)] // TODO
2#![cfg_attr(docsrs, feature(doc_cfg))]
3
4#[macro_use]
5extern crate static_assertions;
6#[macro_use]
7extern crate elfo_utils;
8
9// To make `#[message]` and `msg!` work inside `elfo-core`.
10extern crate self as elfo_core;
11
12// TODO: revise this list
13pub use crate::{
14    actor::{ActorMeta, ActorStartCause, ActorStartInfo},
15    actor_status::{ActorStatus, ActorStatusKind},
16    addr::Addr,
17    config::Config,
18    context::{Context, RequestBuilder},
19    envelope::Envelope,
20    group::{ActorGroup, Blueprint, TerminationPolicy},
21    local::{Local, MoveOwnership},
22    message::{AnyMessage, AnyMessageRef, Message, Request},
23    request_table::{RequestId, ResponseToken},
24    restarting::{RestartParams, RestartPolicy},
25    source::{SourceHandle, UnattachedSource},
26    topology::Topology,
27};
28pub use elfo_macros::{message_core as message, msg_core as msg};
29
30#[macro_use]
31mod macros;
32
33pub mod addr;
34pub mod config;
35pub mod coop;
36pub mod dumping;
37pub mod errors;
38pub mod init;
39pub mod logging;
40pub mod messages;
41pub mod routers;
42pub mod scope;
43pub mod signal;
44pub mod stream;
45#[cfg(feature = "unstable-stuck-detection")]
46pub mod stuck_detection;
47pub mod task;
48pub mod time;
49pub mod topology;
50pub mod tracing;
51
52mod actor;
53mod actor_status;
54mod address_book;
55mod context;
56mod demux;
57mod envelope;
58mod exec;
59mod group;
60mod local;
61mod mailbox;
62#[cfg(target_os = "linux")]
63mod memory_tracker;
64mod message;
65mod object;
66mod panic;
67mod permissions;
68#[cfg(all(feature = "network", feature = "unstable"))]
69pub mod remote;
70#[cfg(all(feature = "network", not(feature = "unstable")))]
71mod remote;
72mod request_table;
73mod restarting;
74mod runtime;
75mod source;
76mod subscription;
77mod supervisor;
78mod telemetry;
79mod thread;
80
81#[doc(hidden)]
82pub mod _priv {
83    pub use crate::{
84        address_book::AddressBook,
85        envelope::{EnvelopeBorrowed, EnvelopeOwned, MessageKind},
86        init::do_start,
87        message::*,
88        object::{GroupVisitor, Object, OwnedObject},
89        permissions::{AtomicPermissions, Permissions},
90    };
91    pub use erased_serde;
92    pub use idr_ebr::EbrGuard;
93    pub use linkme;
94    pub use metrics;
95    #[cfg(feature = "network")]
96    pub use rmp_serde as rmps;
97    pub use serde;
98    pub use smallbox;
99}