Skip to content

Commit d9a5d7a

Browse files
committed
Added AddAssign method on Point2D
1 parent 2e146e2 commit d9a5d7a

File tree

1 file changed

+15
-1
lines changed

1 file changed

+15
-1
lines changed

src/point.rs

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ use size::TypedSize2D;
1515
use num::*;
1616
use num_traits::{Float, NumCast};
1717
use std::fmt;
18-
use std::ops::{Add, Neg, Mul, Sub, Div};
18+
use std::ops::{Add, Neg, Mul, Sub, Div, AddAssign};
1919
use std::marker::PhantomData;
2020

2121
define_matrix! {
@@ -129,6 +129,12 @@ impl<T: Copy + Add<T, Output=T>, U> Add for TypedPoint2D<T, U> {
129129
}
130130
}
131131

132+
impl<T: Copy + Add<T, Output=T>, U> AddAssign for TypedPoint2D<T, U> {
133+
fn add_assign(&mut self, other: TypedPoint2D<T, U>){
134+
*self = *self + other
135+
}
136+
}
137+
132138
impl<T: Copy + Add<T, Output=T>, U> Add<TypedSize2D<T, U>> for TypedPoint2D<T, U> {
133139
type Output = TypedPoint2D<T, U>;
134140
fn add(self, other: TypedSize2D<T, U>) -> TypedPoint2D<T, U> {
@@ -888,6 +894,14 @@ mod typedpoint2d {
888894
assert_eq!(result, Point2DMm::new(4.0, 6.0));
889895
}
890896

897+
#[test]
898+
pub fn test_add_assign() {
899+
let mut p1 = Point2DMm::new(1.0, 2.0);
900+
p1 += Point2DMm::new(3.0, 4.0);
901+
902+
assert_eq!(p1, Point2DMm::new(4.0, 6.0));
903+
}
904+
891905
#[test]
892906
pub fn test_scalar_mul() {
893907
let p1 = Point2DMm::new(1.0, 2.0);

0 commit comments

Comments
 (0)