Skip to main content

aika/
env.rs

1use downcast_rs::{impl_downcast, Downcast};
2use mesocarp::logging::journal::Journal;
3
4pub trait Environment: Downcast + std::fmt::Debug {
5    fn rollback(&mut self, time: u64);
6}
7impl_downcast!(Environment);
8
9#[derive(Debug)]
10pub struct Stateless;
11
12impl Environment for Stateless {
13    fn rollback(&mut self, _time: u64) {}
14}
15
16#[derive(Debug)]
17pub struct SimpleUnified {
18    pub inner: Journal,
19}
20
21impl Environment for SimpleUnified {
22    fn rollback(&mut self, time: u64) {
23        self.inner.rollback(time);
24    }
25}