matio_rs/mat_array.rs
1
2/// Matlab N-dimension array
3pub struct MatArray<'a, T> {
4 pub(crate) data: &'a [T],
5 pub(crate) dims: Vec<u64>,
6}
7
8impl<'a, T> MatArray<'a, T> {
9 /// Creates a new Matlab N-dimension array
10 ///
11 /// The data is aligned according to and in the order of the dimension vector `dims`
12 pub fn new(data: &'a [T], dims: Vec<u64>) -> Self {
13 let n: u64 = dims.iter().product();
14 assert_eq!(
15 n,
16 data.len() as u64,
17 "expect {} elements, found {}",
18 n,
19 data.len() as u64
20 );
21 Self { data, dims }
22 }
23}