#![warn(missing_docs)]
#![deny(rustdoc::broken_intra_doc_links, clippy::unwrap_used)]
#[cfg(all(feature = "tokio_runtime", feature = "async_runtime"))]
compile_error!(
"Features `tokio_runtime` and `async_runtime` are mutually exclusive. Please enable only one."
);
mod actor;
mod addr;
mod channel;
mod context;
pub mod error;
mod event_loop;
pub use hannibal_derive::{main, message};
mod broker;
mod handler;
pub mod runtime;
#[cfg(feature = "signals")]
pub mod signals;
#[cfg(feature = "signals")]
pub use signals::{Signal, broadcast_signals, broadcast_signals_custom};
pub use self::{
actor::{
Actor, DynResult, RestartableActor,
service::{self, Service},
spawnable,
},
addr::{
Addr, Message, OwningAddr, caller::Caller, sender::Sender, weak_addr::WeakAddr,
weak_caller::WeakCaller, weak_sender::WeakSender,
},
context::{Context, TaskHandle},
handler::{Handler, StreamHandler},
};
pub use actor::{builder, builder::setup_actor};
pub use broker::Broker;
pub mod prelude {
pub use crate::{
actor::{Actor, DynResult, service::Service},
addr::{Addr, Message, sender::Sender, weak_caller::WeakCaller, weak_sender::WeakSender},
builder::Configurable,
context::Context,
handler::{Handler, StreamHandler},
main, message,
spawnable::{DefaultSpawnable, Spawnable, StreamSpawnable},
};
pub use hannibal_derive::*;
}