pub trait Update<T> { type Output; // Required method fn update(&mut self, input: T) -> Self::Output; }