SumRange

Trait SumRange 

Source
pub trait SumRange<T> {
    // Required methods
    fn sum_range(&self) -> T;
    fn sum_odd_range(&self) -> T;
    fn sum_even_range(&self) -> T;
}
Expand description

A trait for calculating the sum of numbers in a range.

Required Methods§

Source

fn sum_range(&self) -> T

The sum of the numbers in the range.

§Panics

Panic when the calculation overflows in debug mode.

§Examples
use sum_range::SumRange;

assert_eq!((1..11).sum_range(), 55u32);
assert_eq!((-10..=10).sum_range(), 0i32);
Source

fn sum_odd_range(&self) -> T

The sum of the odd numbers in the range.

§Panics

Panic when the calculation overflows in debug mode.

§Examples
use sum_range::SumRange;

assert_eq!((3..15).sum_odd_range(), 48u16);
assert_eq!((2..14).sum_odd_range(), 48u16);
Source

fn sum_even_range(&self) -> T

The sum of the even numbers in the range.

§Panics

Panic when the calculation overflows in debug mode.

§Examples
use sum_range::SumRange;

assert_eq!((-2..=12).sum_even_range(), 40i64);
assert_eq!((-3..=13).sum_even_range(), 40i64);

Implementations on Foreign Types§

Source§

impl<T> SumRange<T> for Range<T>
where T: Integer + Copy, u8: IntoAs<T>,

Source§

fn sum_range(&self) -> T

Source§

fn sum_odd_range(&self) -> T

Source§

fn sum_even_range(&self) -> T

Source§

impl<T> SumRange<T> for RangeInclusive<T>
where T: Integer + Copy, u8: IntoAs<T>,

Source§

fn sum_range(&self) -> T

Source§

fn sum_odd_range(&self) -> T

Source§

fn sum_even_range(&self) -> T

Source§

impl<T> SumRange<T> for RangeTo<T>
where T: Unsigned + Copy, u8: IntoAs<T>,

Source§

fn sum_range(&self) -> T

Source§

fn sum_odd_range(&self) -> T

Source§

fn sum_even_range(&self) -> T

Source§

impl<T> SumRange<T> for RangeToInclusive<T>
where T: Unsigned + Copy, u8: IntoAs<T>,

Source§

fn sum_range(&self) -> T

Source§

fn sum_odd_range(&self) -> T

Source§

fn sum_even_range(&self) -> T

Implementors§