1
2
3
pub trait Target<U> {
    fn revert(&mut self, undo: U);
}