Skip to main content

define_xyz_dimensions

Macro define_xyz_dimensions 

Source
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());