mathru/algebra/linear/matrix/
matrixcolumniterator.rs

1use super::General;
2use std::slice::Iter;
3
4pub struct MatrixColumnIterator<'a, T> {
5    iter: Iter<'a, T>,
6}
7
8impl<'a, T> MatrixColumnIterator<'a, T> {
9    pub fn new(g: &'a General<T>, column: usize) -> MatrixColumnIterator<'a, T> {
10        let rows = g.nrows();
11
12        let first = column * rows;
13        let iter = g.data[first..first + rows].iter();
14        MatrixColumnIterator { iter }
15    }
16}
17
18impl<'a, T> Iterator for MatrixColumnIterator<'a, T> {
19    type Item = &'a T;
20
21    fn next(&mut self) -> Option<Self::Item> {
22        self.iter.next()
23    }
24}