#![allow(clippy::needless_doctest_main)]
#![deny(nonstandard_style, rust_2018_idioms)]
#![warn(
deprecated_in_future,
trivial_casts,
trivial_numeric_casts,
clippy::doc_markdown
)]
#![allow(deprecated)]
#[cfg(doctest)]
doc_comment::doctest!("../README.md");
mod actor;
mod context;
mod contextimpl;
mod contextitems;
mod handler;
mod stream;
mod supervisor;
mod address;
mod mailbox;
pub mod actors;
pub mod clock;
pub mod fut;
pub mod io;
pub mod registry;
pub mod sync;
pub mod utils;
#[cfg(feature = "macros")]
pub use actix_derive::{main, test, Message, MessageResponse};
pub use actix_rt::{spawn, Arbiter, ArbiterHandle, System, SystemRunner};
pub use crate::actor::{
Actor, ActorContext, ActorState, AsyncContext, Running, SpawnHandle, Supervised,
};
pub use crate::address::{Addr, MailboxError, Recipient, WeakAddr, WeakRecipient};
pub use crate::context::Context;
pub use crate::fut::{
ActorFuture, ActorFutureExt, ActorStream, ActorStreamExt, ActorTryFuture,
ActorTryFutureExt, WrapFuture, WrapStream,
};
pub use crate::handler::{
ActorResponse, AtomicResponse, Handler, Message, MessageResult, Response,
ResponseActFuture, ResponseFuture,
};
pub use crate::registry::{ArbiterService, Registry, SystemRegistry, SystemService};
pub use crate::stream::StreamHandler;
pub use crate::supervisor::Supervisor;
pub use crate::sync::{SyncArbiter, SyncContext};
#[doc(hidden)]
pub use crate::context::ContextFutureSpawner;
pub mod prelude {
#[doc(hidden)]
#[cfg(feature = "macros")]
pub use actix_derive::{Message, MessageResponse};
pub use actix_rt::{Arbiter, ArbiterHandle, System, SystemRunner};
pub use crate::actor::{
Actor, ActorContext, ActorState, AsyncContext, Running, SpawnHandle, Supervised,
};
pub use crate::address::{
Addr, MailboxError, Recipient, RecipientRequest, Request, SendError,
};
pub use crate::context::{Context, ContextFutureSpawner};
pub use crate::fut::{
ActorFuture, ActorFutureExt, ActorStream, ActorStreamExt, ActorTryFuture,
ActorTryFutureExt, WrapFuture, WrapStream,
};
pub use crate::handler::{
ActorResponse, AtomicResponse, Handler, Message, MessageResult, Response,
ResponseActFuture, ResponseFuture,
};
pub use crate::registry::{ArbiterService, SystemService};
pub use crate::stream::StreamHandler;
pub use crate::supervisor::Supervisor;
pub use crate::sync::{SyncArbiter, SyncContext};
pub use crate::actors;
pub use crate::dev;
pub use crate::fut;
pub use crate::io;
pub use crate::utils::{Condition, IntervalFunc, TimerFunc};
pub use futures_core::stream::Stream;
}
pub mod dev {
pub use crate::prelude::*;
pub use crate::address::{Envelope, EnvelopeProxy, RecipientRequest, Request, ToEnvelope};
pub mod channel {
pub use crate::address::channel::{channel, AddressReceiver, AddressSender};
}
pub use crate::contextimpl::{AsyncContextParts, ContextFut, ContextParts};
pub use crate::handler::{MessageResponse, OneshotSender};
pub use crate::mailbox::Mailbox;
pub use crate::registry::{Registry, SystemRegistry};
}
#[allow(clippy::unit_arg)]
pub fn run<R>(f: R) -> std::io::Result<()>
where
R: std::future::Future<Output = ()> + 'static,
{
Ok(actix_rt::System::new().block_on(f))
}