library_utils 0.0.2

A native utils-remotly
Documentation
use std::cmp::PartialOrd;
use std::ops::AddAssign;

pub struct Stepper<T> {
    curr: T,
    step: T,
    stop: T,
}

impl<T> Stepper<T> {
    pub fn new(start: T, stop: T, step: T) -> Self {
        Stepper {
            curr: start,
            stop: stop,
            step: step,
        }
    }
}

impl<T> Iterator for Stepper<T>
where
    T: AddAssign + Copy + PartialOrd,
{
    type Item = T;

    fn next(&mut self) -> Option<T> {
        if self.curr >= self.stop {
            return None;
        }
        let res = self.curr;
        self.curr += self.step;
        Some(res)
    }
}