macro_rules! define_xyz_dimensions {
($name:ident, $var_type:ty, $friendly_name:expr, $invalid_zero_value:expr, $doc_string:expr) => { ... };
}Expand description
Creates a 3D dimension type with width,height,depth fields and validation.
ยงExample
use feagi_structures::{define_xyz_dimensions, FeagiDataError};
define_xyz_dimensions!(Volume3D, u32, "Volume3D", 0, "A 3D volume with positive dimensions");
let vol = Volume3D::new(10, 20, 30).unwrap();
assert_eq!(vol.width, 10);
assert_eq!(vol.height, 20);
assert_eq!(vol.depth, 30);
assert_eq!(vol.number_elements(), 6000);
let invalid = Volume3D::new(0, 20, 30);
assert!(invalid.is_err());