aika 0.2.1

Multi-agent coordination framework in Rust with single and multi-threaded execution engines.
Documentation
use downcast_rs::{impl_downcast, Downcast};
use mesocarp::logging::journal::Journal;

pub trait Environment: Downcast + std::fmt::Debug {
    fn rollback(&mut self, time: u64);
}
impl_downcast!(Environment);

#[derive(Debug)]
pub struct Stateless;

impl Environment for Stateless {
    fn rollback(&mut self, _time: u64) {}
}

#[derive(Debug)]
pub struct SimpleUnified {
    pub inner: Journal,
}

impl Environment for SimpleUnified {
    fn rollback(&mut self, time: u64) {
        self.inner.rollback(time);
    }
}