redstone_ml/ndarray/iterator/
iterators.rs1use crate::dtype::RawDataType;
2use crate::iterator::flat_iterator::FlatIterator;
3use crate::tensor_iterator::NdIterator;
4use crate::NdArray;
5use crate::axis::{AxesType, AxisType};
6use crate::buffer_iterator::BufferIterator;
7
8impl<T: RawDataType> NdArray<'_, T> {
9 pub fn flatiter(&self) -> FlatIterator<T> {
10 FlatIterator::from(self)
11 }
12
13 pub fn flatiter_ptr(&self) -> BufferIterator<T> {
14 BufferIterator::from(self)
15 }
16}
17
18impl<'a, T: RawDataType> NdArray<'a, T> {
19 pub fn iter(&'a self) -> NdIterator<'a, T> {
20 NdIterator::from(self, [0])
21 }
22
23 pub fn iter_along(&'a self, axis: impl AxisType) -> NdIterator<'a, T> {
24 NdIterator::from(self, [axis.as_absolute(self.shape.len())])
25 }
26
27 pub fn nditer(&'a self, axes: impl AxesType) -> NdIterator<'a, T> {
28 NdIterator::from(self, axes)
29 }
30}