1pub trait MatTrait { 2 fn shape(&self) -> (usize, usize); 3 fn nrows(&self) -> usize { self.shape().0 } 4 fn ncols(&self) -> usize { self.shape().1 } 5 fn is_square(&self) -> bool { 6 let (m, n) = self.shape(); 7 m == n 8 } 9}