From 532e1d1bcccb36be0722165a76ed99754509bd1a Mon Sep 17 00:00:00 2001 From: Daniel Thompson Date: Thu, 3 Nov 2022 14:41:40 +0000 Subject: Replace Add with AddAssign to get rid of another clone. Similar performance improvements observed in the benchmark: change: [-11.816% -11.802% -11.789%] (p = 0.00 < 0.05) Performance has improved. Signed-off-by: Daniel Thompson --- src/lib.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index eecdcaf..fbc29e4 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,6 +1,6 @@ use num::{One, Zero}; use std::mem; -use std::ops::Add; +use std::ops::AddAssign; #[derive(Debug)] pub struct Fib { @@ -17,13 +17,13 @@ impl Fib { } } -impl> Iterator for Fib { +impl Iterator for Fib { type Item = T; fn next(&mut self) -> Option { let res = self.a.clone(); mem::swap(&mut self.a, &mut self.b); - self.b = self.b.clone() + self.a.clone(); + self.b += self.a.clone(); Some(res) } -- cgit v1.2.3