feat(bbox): add bounding box implementation with serialization

Add initial implementation of the `BBox` struct in the `bbox` module,
including basic operations and serialization/deserialization support
with Serde.
This commit is contained in:
uttarayan21
2025-08-22 15:27:47 +05:30
parent aab3d84db0
commit 4b4d23d1d4
5 changed files with 777 additions and 0 deletions

27
bbox/src/traits/min.rs Normal file
View File

@@ -0,0 +1,27 @@
pub trait Min: Sized + Copy {
fn min(self, other: Self) -> Self;
}
macro_rules! impl_min {
($($t:ty),*) => {
$(
impl Min for $t {
fn min(self, other: Self) -> Self {
Ord::min(self, other)
}
}
)*
};
(float $($t:ty),*) => {
$(
impl Min for $t {
fn min(self, other: Self) -> Self {
Self::min(self, other)
}
}
)*
};
}
impl_min!(usize, u8, u16, u32, u64, u128, isize, i8, i16, i32, i64, i128);
impl_min!(float f32, f64);