kameo/
lib.rs

1#![doc = include_str!("../README.md")]
2#![warn(missing_docs)]
3#![warn(clippy::all)]
4#![warn(rust_2018_idioms)]
5#![warn(missing_debug_implementations)]
6#![deny(unused_must_use)]
7#![cfg_attr(docsrs, feature(doc_auto_cfg))]
8
9pub mod actor;
10pub mod error;
11pub mod mailbox;
12pub mod message;
13#[cfg(not(feature = "remote"))]
14pub mod registry;
15#[cfg(feature = "remote")]
16pub mod remote;
17pub mod reply;
18pub mod request;
19
20pub use actor::Actor;
21#[cfg(feature = "macros")]
22pub use kameo_macros::{messages, remote_message, Actor, RemoteActor, Reply};
23pub use reply::Reply;
24
25/// Commonly used types and functions that can be imported with a single use statement.
26///
27/// ```
28/// use kameo::prelude::*;
29/// ```
30///
31/// This module includes the most essential actor components, messaging types,
32/// and traits needed for typical actor system usage.
33pub mod prelude {
34    #[cfg(feature = "macros")]
35    pub use kameo_macros::{messages, remote_message, Actor, RemoteActor, Reply};
36
37    #[cfg(feature = "remote")]
38    pub use crate::actor::RemoteActorRef;
39    pub use crate::actor::{
40        Actor, ActorId, ActorRef, PreparedActor, Recipient, ReplyRecipient, WeakActorRef,
41        WeakRecipient, WeakReplyRecipient,
42    };
43    #[cfg(feature = "remote")]
44    pub use crate::error::RemoteSendError;
45    pub use crate::error::{ActorStopReason, PanicError, SendError};
46    pub use crate::mailbox::{self, MailboxReceiver, MailboxSender};
47    pub use crate::message::{Context, Message};
48    #[cfg(feature = "remote")]
49    pub use crate::remote::{self, RemoteActor, RemoteMessage};
50    pub use crate::reply::{DelegatedReply, ForwardedReply, Reply, ReplyError, ReplySender};
51}