pub use std::any::Any;
pub use self::actor_cell::{ActorCell, ActorContext, ControlMessage, InnerMessage, SystemMessage};
pub use self::actor_ref::{ActorPath, ActorRef};
pub use self::actor_system::ActorSystem;
pub use self::props::Props;
pub mod actor_ref;
pub mod actor_system;
pub mod props;
pub mod actor_cell;
mod cthulhu;
mod root_actor;
mod name_resolver;
mod future;
pub trait Message: Clone + Send + Sync + 'static + Any {}
impl<T> Message for T where T: Clone + Send + Sync + 'static + Any
{}
pub trait Arguments: Clone + Send + Sync + 'static {}
impl<T> Arguments for T where T: Clone + Send + Sync + 'static
{}
pub trait Actor: Send + Sync + 'static {
fn receive(&self, message: Box<Any>, context: ActorCell);
fn pre_start(&self, _context: ActorCell) {}
fn post_stop(&self) {}
fn pre_restart(&self, _context: ActorCell) {
self.post_stop();
}
fn post_restart(&self, context: ActorCell) {
self.pre_start(context);
}
}