use std::marker::PhantomData;
pub trait Rev {
type Input;
type Output;
fn forward(&self, i: Self::Input) -> Self::Output;
fn reverse(&self, o: Self::Output) -> Self::Input;
}
#[derive(Clone)]
pub struct Addition {
amount: A
}
impl Rev for Addition
where
A: std::ops::Add