osom_primitives/
length_ops.rs1#![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}