1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
pub trait Apply<D> { fn apply(&mut self, diff: D); } impl<T> Apply<T> for T { fn apply(&mut self, diff: T) { *self = diff; } } impl<T> Apply<T> for Option<T> { fn apply(&mut self, diff: T) { *self = Some(diff); } }