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}