#![allow(clippy::type_complexity)]
#![warn(clippy::doc_markdown)]
mod actor;
mod addr;
mod broker;
mod caller;
mod context;
mod lifecycle;
mod runtime;
mod service;
mod supervisor;
#[cfg(all(feature = "anyhow", feature = "eyre"))]
compile_error!(
r#"
features `hannibal/anyhow` and `hannibal/eyre` are mutually exclusive.
If you are trying to disable anyhow set `default-features = false`.
"#
);
#[cfg(feature = "anyhow")]
pub use anyhow as error;
#[cfg(feature = "eyre")]
pub use eyre as error;
#[cfg_attr(feature = "eyre", doc = "Alias of [`eyre::Result`]")]
#[cfg_attr(not(feature = "eyre"), doc = "Alias of [`anyhow::Result`]")]
pub type Result<T> = error::Result<T>;
#[cfg_attr(feature = "eyre", doc = "Alias of [`eyre::Error`]")]
#[cfg_attr(not(feature = "eyre"), doc = "Alias of [`anyhow::Error`]")]
pub type Error = error::Error;
pub type ActorId = u64;
pub use actor::{Actor, Handler, Message, StreamHandler};
pub use addr::{Addr, WeakAddr};
pub use broker::Broker;
pub use caller::{Caller, Sender};
pub use context::Context;
pub use hannibal_derive::{main, message};
pub use runtime::{block_on, sleep, spawn, timeout};
pub use service::{LocalService, Service};
pub use supervisor::Supervisor;