# HG changeset patch # User Tuomo Valkonen # Date 1682661801 -10800 # Node ID 331345346e7b8b9365832b50e001eb61d0e2e27a # Parent 00029c20c0ee46bebf1d33133965ee64f44c12f1 Implement std::iter::Sum for Loc diff -r 00029c20c0ee -r 331345346e7b src/loc.rs --- a/src/loc.rs Fri Apr 28 08:32:15 2023 +0300 +++ b/src/loc.rs Fri Apr 28 09:03:21 2023 +0300 @@ -237,6 +237,20 @@ make_binop!(Add, add, AddAssign, add_assign); make_binop!(Sub, sub, SubAssign, sub_assign); +impl std::iter::Sum for Loc { + fn sum>>(mut iter: I) -> Self { + match iter.next() { + None => Self::ORIGIN, + Some(mut v) => { + for w in iter { + v += w + } + v + } + } + } +} + macro_rules! make_scalarop_rhs { ($trait:ident, $fn:ident, $trait_assign:ident, $fn_assign:ident) => { impl $trait for Loc {