use std::collections::HashMap;
#[derive(Debug, Clone, Copy, Default)]
pub struct Dimensions {
pub i: u32,
pub c: u32,
pub r: u32,
pub e: u32,
pub n: u32,
pub m: u32,
}
impl Dimensions {
pub fn is_valid(&self) -> bool {
self.i == 1 && self.c == 3 && self.r > 0 && self.e > 0 && self.n > 0 && self.m > 0
}
}
#[derive(Debug, Clone, Default)]
pub struct Array {
pub values: Vec<f32>,
pub attributes: HashMap<String, String>,
}
impl Array {
pub fn new() -> Self {
Self::default()
}
pub fn from_values(values: Vec<f32>) -> Self {
Self {
values,
attributes: HashMap::new(),
}
}
pub fn get_attribute(&self, name: &str) -> Option<&str> {
self.attributes.get(name).map(|s| s.as_str())
}
pub fn is_empty(&self) -> bool {
self.values.is_empty()
}
pub fn len(&self) -> usize {
self.values.len()
}
}