use crate::target::Target;
pub trait ReverseCont<Tid>: Target
where
Tid: crate::is_valid_tid::IsValidTid,
{
fn reverse_cont(&mut self) -> Result<(), Self::Error>;
}
pub type ReverseContOps<'a, Tid, T> =
&'a mut dyn ReverseCont<Tid, Arch = <T as Target>::Arch, Error = <T as Target>::Error>;
pub trait ReverseStep<Tid>: Target
where
Tid: crate::is_valid_tid::IsValidTid,
{
fn reverse_step(&mut self, tid: Tid) -> Result<(), Self::Error>;
}
pub type ReverseStepOps<'a, Tid, T> =
&'a mut dyn ReverseStep<Tid, Arch = <T as Target>::Arch, Error = <T as Target>::Error>;
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum ReplayLogPosition {
Begin,
End,
}