logisheets_base/types/
cube_value.rs

1use crate::matrix_value::MatrixValue;
2
3#[derive(Debug, Clone)]
4pub struct CubeValue<T>
5where
6    T: Clone + 'static + Default + std::fmt::Debug,
7{
8    pub data: Vec<MatrixValue<T>>,
9}
10
11impl<T> IntoIterator for CubeValue<T>
12where
13    T: Clone + 'static + Default + std::fmt::Debug,
14{
15    type Item = T;
16
17    type IntoIter = std::vec::IntoIter<Self::Item>;
18
19    fn into_iter(self) -> Self::IntoIter {
20        self.data
21            .into_iter()
22            .flatten()
23            .collect::<Vec<_>>()
24            .into_iter()
25    }
26}
27
28impl<T> CubeValue<T>
29where
30    T: Clone + 'static + Default + std::fmt::Debug,
31{
32    pub fn new(data: Vec<MatrixValue<T>>) -> Self {
33        CubeValue { data }
34    }
35}