1 2 3 4 5 6 7 8 9 10 11 12 13
pub trait Mirror: Sized { #[must_use] fn mirror_x(&self) -> Self; fn mirror_x_mut(&mut self) { *self = self.mirror_x(); } #[must_use] fn mirror_y(&self) -> Self; fn mirror_y_mut(&mut self) { *self = self.mirror_y(); } }