e
Diffstat (limited to 'src/color/serial.rs')
-rwxr-xr-xsrc/color/serial.rs49
1 files changed, 49 insertions, 0 deletions
diff --git a/src/color/serial.rs b/src/color/serial.rs
new file mode 100755
index 0000000..e353055
--- /dev/null
+++ b/src/color/serial.rs
@@ -0,0 +1,49 @@
+use std::ops::{Add, AddAssign, Div, Mul, Sub, SubAssign};
+
+#[derive(Copy, Clone, Eq, PartialEq, Debug, Default)]
+pub struct BlurU32(pub u32);
+
+impl Add for BlurU32 {
+ type Output = Self;
+
+ fn add(self, rhs: Self) -> Self::Output {
+ Self(self.0.wrapping_add(rhs.0))
+ }
+}
+
+impl Sub for BlurU32 {
+ type Output = Self;
+
+ fn sub(self, rhs: Self) -> Self::Output {
+ Self(self.0.wrapping_sub(rhs.0))
+ }
+}
+
+impl AddAssign for BlurU32 {
+ fn add_assign(&mut self, rhs: Self) {
+ self.0 = self.0.wrapping_add(rhs.0);
+ }
+}
+
+impl SubAssign for BlurU32 {
+ fn sub_assign(&mut self, rhs: Self) {
+ self.0 = self.0.wrapping_sub(rhs.0);
+ }
+}
+
+impl Mul<usize> for BlurU32 {
+ type Output = Self;
+
+ fn mul(self, rhs: usize) -> Self::Output {
+ Self(self.0.wrapping_mul(rhs as u32))
+ }
+}
+
+impl Div<usize> for BlurU32 {
+ type Output = Self;
+
+ #[inline]
+ fn div(self, rhs: usize) -> Self::Output {
+ Self(self.0.wrapping_div(rhs as u32))
+ }
+}