Skip to main content

playground/
playground.rs

1use ad_hoc_iterator::{iterate, iterator_from};
2
3fn count_to(n: usize) -> impl Iterator<Item = usize> {
4    let mut i = 0;
5    iterate! {
6        if i < n {
7            i += 1;
8            Some(i-1)
9        } else {
10            None
11        }
12    }
13}
14
15fn count_from_to(n: usize, m: usize) -> impl Iterator<Item = usize> {
16    let mut i = n;
17    iterator_from(move || {
18        if i < m {
19            i += 1;
20            Some(i - 1)
21        } else {
22            None
23        }
24    })
25}
26
27fn main() {
28    for i in count_to(10) {
29        println!("{}", i);
30    }
31
32    println!("---");
33
34    for i in count_from_to(5, 15) {
35        println!("{}", i);
36    }
37}