#![allow(dead_code, deprecated, unused_variables, unused_mut)] use std::ops::ShrAssign; #[derive(Debug, PartialEq)] struct Scalar(usize); impl ShrAssign for Scalar { fn shr_assign(&mut self, rhs: usize) { self.0 >>= rhs; } } fn main() { let mut scalar = Scalar(16); scalar >>= 2; assert_eq!(scalar, Scalar(4)); }