logisheets_base/types/
cube_value.rs1use 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}