diff --git a/hui-shared/src/rect/sides.rs b/hui-shared/src/rect/sides.rs index 48aa0cf..d724d1d 100644 --- a/hui-shared/src/rect/sides.rs +++ b/hui-shared/src/rect/sides.rs @@ -1,3 +1,4 @@ +use core::ops::Add; use derive_more::{Add, AddAssign, Div, DivAssign, Mul, MulAssign, Neg, Product, Sub, SubAssign, Sum}; /// Represents 4 sides of a rectangular shape. @@ -31,6 +32,18 @@ impl<T: Clone> Sides<T> { } } +impl<T: Add + Clone> Sides<T> { + #[inline] + pub fn sum_horizontal(&self) -> <T as Add>::Output { + self.left.clone() + self.right.clone() + } + + #[inline] + pub fn sum_vertical(&self) -> <T as Add>::Output { + self.top.clone() + self.bottom.clone() + } +} + impl<T: Clone> From<T> for Sides<T> { fn from(value: T) -> Self { Self::all(value)