#odd #range #sum #numbers #even

sum_range

The sum of all consecutive numbers, both even and odd

1 unstable release

0.1.0 Nov 30, 2024

#407 in Math

Download history 104/week @ 2024-11-25 41/week @ 2024-12-02 8/week @ 2024-12-09

153 downloads per month

MIT and GPL-3.0-or-later

10KB
165 lines

Sum_Range

This crate provides a trait for efficiently calculating the sum of numbers within a range, including support for odd and even number sums.

Supported Range Types

  • Range
  • RangeInclusive
  • RangeTo
  • RangeToInclusive

Trait Methods

  • sum_range: Calculates the sum of all numbers in the range.
  • sum_odd_range: Calculates the sum of all odd numbers in the range.
  • sum_even_range: Calculates the sum of all even numbers in the range.

Note

  • For RangeTo and RangeToInclusive, signed integer types are not supported.

Usage

use sum_range::SumRange;

assert_eq!((1..11).sum_range(), 55u8);
assert_eq!((0..=12).sum_range(), 78u8);
assert_eq!((-10..12).sum_odd_range(), 11i16);
assert_eq!((-5..=5).sum_even_range(), 0i32);

License

This crate is licensed under the MIT license.


lib.rs:

This crate provides a trait for calculating the sum of numbers in a range.

The trait is implemented for the following types:

The trait provides three methods:

The methods calculate the sum of the numbers in the range, the sum of the odd numbers in the range, and the sum of the even numbers in the range, respectively.

NOTE: For RangeTo and RangeToInclusive, signed integer types are not supported.

Examples

use sum_range::SumRange;

assert_eq!((1..11).sum_range(), 55u8);
assert_eq!((0..=12).sum_range(), 78u8);
assert_eq!((-10..12).sum_odd_range(), 11i16);
assert_eq!((-5..=5).sum_even_range(), 0i32);

Dependencies

~550KB
~11K SLoC