1pub trait Size {
3 fn rows(&self) -> usize;
5
6 fn columns(&self) -> usize;
8
9 #[inline(always)]
11 fn dimensions(&self) -> (usize, usize) {
12 (self.rows(), self.columns())
13 }
14}
15
16impl Size for (usize, usize) {
17 #[inline(always)]
18 fn rows(&self) -> usize {
19 self.0
20 }
21
22 #[inline(always)]
23 fn columns(&self) -> usize {
24 self.1
25 }
26}
27
28impl Size for usize {
29 #[inline(always)]
30 fn rows(&self) -> usize {
31 *self
32 }
33
34 #[inline(always)]
35 fn columns(&self) -> usize {
36 *self
37 }
38}