matrix/
size.rs

1/// A size.
2pub trait Size {
3    /// Return the number of rows.
4    fn rows(&self) -> usize;
5
6    /// Return the number of columns.
7    fn columns(&self) -> usize;
8
9    /// Return the number of rows and columns.
10    #[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}