From 5fd223dfb3c0ed4258199ab14edeea4ed6088384 Mon Sep 17 00:00:00 2001 From: Matej Focko Date: Sun, 7 Jul 2024 16:18:51 +0200 Subject: [PATCH] lib(vec3d): support add/sub-assign Signed-off-by: Matej Focko --- src/vectors/vec3d.rs | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/vectors/vec3d.rs b/src/vectors/vec3d.rs index 55cea8f..6b110fd 100644 --- a/src/vectors/vec3d.rs +++ b/src/vectors/vec3d.rs @@ -2,7 +2,7 @@ use std::cmp::Eq; // use std::collections::VecDeque; use std::fmt::Debug; use std::hash::Hash; -use std::ops::{Add, /* Index, IndexMut, */ Mul, Sub}; +use std::ops::{Add, AddAssign, Mul, Sub, SubAssign}; #[derive(Copy, Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)] pub struct Vector3D { @@ -101,6 +101,14 @@ impl, U> Add for Vector3D { } } +impl AddAssign for Vector3D { + fn add_assign(&mut self, rhs: Self) { + self.x += rhs.x; + self.y += rhs.y; + self.z += rhs.z; + } +} + impl, U> Sub for Vector3D { type Output = Vector3D; @@ -113,6 +121,14 @@ impl, U> Sub for Vector3D { } } +impl SubAssign for Vector3D { + fn sub_assign(&mut self, rhs: Self) { + self.x -= rhs.x; + self.y -= rhs.y; + self.z -= rhs.z; + } +} + impl, U> Mul for Vector3D { type Output = Vector3D;