File tree Expand file tree Collapse file tree 2 files changed +38
-36
lines changed Expand file tree Collapse file tree 2 files changed +38
-36
lines changed Original file line number Diff line number Diff line change 1
- //! # gen_iter - create generators to use as iterators
2
- //!
3
- //! `GenIter` converts a generator into an iterator over the
4
- //! yielded type of the generator. The return type of the generator needs to be `()`.
5
- //!
6
- //! ```
7
- //! #![feature(generators)]
8
- //! #![feature(conservative_impl_trait)]
9
- //!
10
- //! use gen_iter::gen_iter;
11
- //!
12
- //! fn fibonacci() -> impl Iterator<Item = u64> {
13
- //! gen_iter!({
14
- //! let mut a = 0;
15
- //! let mut b = 1;
16
- //!
17
- //! loop {
18
- //! let c = a + b;
19
- //! a = b;
20
- //! b = c;
21
- //!
22
- //! yield a;
23
- //! }
24
- //! })
25
- //! }
26
- //!
27
- //! for elem in fibonacci().map(|x| 2 * x).take(10) {
28
- //! println!("{}", elem);
29
- //! }
30
- //! ```
31
- //!
32
-
33
- #![ no_std]
34
- #![ feature( generators, generator_trait) ]
35
- // #![feature(conservative_impl_trait)]
36
-
37
1
use core:: ops:: { Generator , GeneratorState } ;
38
2
use core:: iter:: Iterator ;
39
3
use core:: marker:: Unpin ;
Original file line number Diff line number Diff line change
1
+ //! # gen_iter - create generators to use as iterators
2
+ //!
3
+ //! `GenIter` converts a generator into an iterator over the
4
+ //! yielded type of the generator. The return type of the generator needs to be `()`.
5
+ //!
6
+ //! ```
7
+ //! #![feature(generators)]
8
+ //! #![feature(conservative_impl_trait)]
9
+ //!
10
+ //! use gen_iter::gen_iter;
11
+ //!
12
+ //! fn fibonacci() -> impl Iterator<Item = u64> {
13
+ //! gen_iter!({
14
+ //! let mut a = 0;
15
+ //! let mut b = 1;
16
+ //!
17
+ //! loop {
18
+ //! let c = a + b;
19
+ //! a = b;
20
+ //! b = c;
21
+ //!
22
+ //! yield a;
23
+ //! }
24
+ //! })
25
+ //! }
26
+ //!
27
+ //! for elem in fibonacci().map(|x| 2 * x).take(10) {
28
+ //! println!("{}", elem);
29
+ //! }
30
+ //! ```
31
+ //!
32
+
33
+ #![ no_std]
34
+ #![ feature( generators, generator_trait) ]
35
+ // #![feature(conservative_impl_trait)]
36
+
37
+ mod gen_iter;
38
+ pub use gen_iter:: * ;
You can’t perform that action at this time.
0 commit comments