use crateActorContext;
use crateActor;
use Error;
use UnwindSafe;
/// [Actor] can only be created from a Factory
///
/// This factory approach is necessary because of the restart behavior.
/// Without this factory we'd need to keep a `.clone()` of the initial Actor, which would force all Actor implementations to implement `Clone`.
///
/// # Examples
///
/// Basic usage:
///
/// ```rust
/// use std::error::Error;
/// use tyra::prelude::*;
///
/// #[derive(Actor, ActorFactory, Clone)]
/// struct TestActor {}
/// ```