use std::panic::UnwindSafe;
#[cfg(feature = "async-trait")]
use async_trait::async_trait;
pub trait ActorState : Sized
{
fn pre_run(&mut self) -> bool
{
true
}
fn run(&mut self) -> bool;
fn post_run(self)
{
}
}
#[cfg(feature = "async-trait")]
#[async_trait]
pub trait ActorStateAsync : Sized
{
async fn pre_run_async(&mut self) -> bool
{
true
}
async fn run_async(&mut self) -> bool;
async fn post_run_async(self)
{
}
}
#[cfg(feature = "async-trait")]
#[async_trait]
pub trait ActorStateUnwindSafeAsync : ActorStateAsync + UnwindSafe + Sized
{
}