osom_primitives/
length_ops.rs

1#![allow(clippy::cast_possible_wrap)]
2
3use crate::{as_i32::AsI32, length::Length};
4
5impl<T: AsI32> core::ops::Add<T> for Length {
6    type Output = Self;
7
8    fn add(self, rhs: T) -> Self::Output {
9        Self::try_from_i32(self.as_u32() as i32 + rhs.as_i32()).unwrap()
10    }
11}
12
13impl<T: AsI32> core::ops::AddAssign<T> for Length {
14    fn add_assign(&mut self, rhs: T) {
15        *self = Self::try_from_i32(self.as_u32() as i32 + rhs.as_i32()).unwrap();
16    }
17}
18
19impl<T: AsI32> core::ops::Sub<T> for Length {
20    type Output = Self;
21
22    fn sub(self, rhs: T) -> Self::Output {
23        Self::try_from_i32(self.as_u32() as i32 - rhs.as_i32()).unwrap()
24    }
25}
26
27impl<T: AsI32> core::ops::SubAssign<T> for Length {
28    fn sub_assign(&mut self, rhs: T) {
29        *self = Self::try_from_i32(self.as_u32() as i32 - rhs.as_i32()).unwrap();
30    }
31}