use derive_builder::Builder;
#[derive(Builder)]
pub struct Sequence <T> {
start : T,
interval : T
}
pub type Builder <T> = SequenceBuilder <T>;
impl <T> Iterator for Sequence <T> where T : Copy + std::ops::Add <Output=T> {
type Item = T;
fn next (&mut self) -> Option <T> {
let out = Some (self.start);
self.start = self.start + self.interval;
out
}
}