From ed315ffcae789358186fca2365ff51e6df1bad93 Mon Sep 17 00:00:00 2001 From: Isis Lovecruft Date: Thu, 18 May 2017 23:00:55 +0000 Subject: [PATCH] Implement {AddAssign, SubAssign} for ExtendedPoint. --- src/curve.rs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/curve.rs b/src/curve.rs index a9387a6..9d34f6f 100644 --- a/src/curve.rs +++ b/src/curve.rs @@ -83,6 +83,7 @@ use collections::Vec; use core::fmt::Debug; use core::iter::Iterator; use core::ops::{Add, Sub, Neg}; +use core::ops::{AddAssign, SubAssign}; use core::ops::{Mul, MulAssign}; use core::ops::Index; @@ -802,6 +803,12 @@ impl<'a,'b> Add<&'b ExtendedPoint> for &'a ExtendedPoint { } } +impl<'b> AddAssign<&'b ExtendedPoint> for ExtendedPoint { + fn add_assign(&mut self, _rhs: &'b ExtendedPoint) { + *self = (self as &ExtendedPoint) + _rhs; + } +} + impl<'a,'b> Sub<&'b ExtendedPoint> for &'a ExtendedPoint { type Output = ExtendedPoint; fn sub(self, other: &'b ExtendedPoint) -> ExtendedPoint { @@ -809,6 +816,12 @@ impl<'a,'b> Sub<&'b ExtendedPoint> for &'a ExtendedPoint { } } +impl<'b> SubAssign<&'b ExtendedPoint> for ExtendedPoint { + fn sub_assign(&mut self, _rhs: &'b ExtendedPoint) { + *self = (self as &ExtendedPoint) - _rhs; + } +} + impl<'a> Neg for &'a ExtendedPoint { type Output = ExtendedPoint;