From 2f9f4df82109cc238893001b7e6915863b35fe39 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Mon, 5 Oct 2020 13:13:06 +0100 Subject: [PATCH] use zip_eq Signed-off-by: Ian Jackson --- src/bigfloat.rs | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/src/bigfloat.rs b/src/bigfloat.rs index 9f484e02..6ae6080c 100644 --- a/src/bigfloat.rs +++ b/src/bigfloat.rs @@ -86,7 +86,7 @@ mod innards { impl Bigfloat { pub(in super) - fn from_limbs(sign: Sign, exp: Sz, nlimbs: Sz, mut limbs: I) + fn from_limbs(sign: Sign, exp: Sz, nlimbs: Sz, limbs: I) -> Bigfloat where L: Into + Debug, I: Iterator @@ -95,15 +95,8 @@ mod innards { let p = alloc::alloc(layout(nlimbs)); let (p_header, p_limbs) = ptrs(p); ptr::write(p_header, Header { sign, exp, nlimbs }); - let mut count = 0..(nlimbs as usize); - loop { - match (limbs.next(), count.next()) { - (None, None) => break, - (Some(l), Some(i)) => { - p_limbs.add(i).write(l.into()); - }, - x => panic!("unexpected {:?}", x), - } + for (l, i) in limbs.zip_eq(0..(nlimbs as usize)) { + p_limbs.add(i).write(l.into()); } Bigfloat(NonNull::new(p).unwrap()) } -- 2.30.2