File tree Expand file tree Collapse file tree 1 file changed +19
-13
lines changed Expand file tree Collapse file tree 1 file changed +19
-13
lines changed Original file line number Diff line number Diff line change @@ -181,19 +181,25 @@ never call its underlying iterator again once `None` has been returned:
181
181
~~~
182
182
let xs = [ 1,2,3,4,5] ;
183
183
let mut calls = 0;
184
- let it = xs.iter().scan((), |_ , x| {
185
- calls += 1;
186
- if * x < 3 { Some(x) } else { None }});
187
- // the iterator will only yield 1 and 2 before returning None
188
- // If we were to call it 5 times, calls would end up as 5, despite only 2 values
189
- // being yielded (and therefore 3 unique calls being made). The fuse() adaptor
190
- // can fix this.
191
- let mut it = it.fuse();
192
- it.next();
193
- it.next();
194
- it.next();
195
- it.next();
196
- it.next();
184
+
185
+ {
186
+ let it = xs.iter().scan((), |_ , x| {
187
+ calls += 1;
188
+ if * x < 3 { Some(x) } else { None }});
189
+
190
+ // the iterator will only yield 1 and 2 before returning None
191
+ // If we were to call it 5 times, calls would end up as 5, despite
192
+ // only 2 values being yielded (and therefore 3 unique calls being
193
+ // made). The fuse() adaptor can fix this.
194
+
195
+ let mut it = it.fuse();
196
+ it.next();
197
+ it.next();
198
+ it.next();
199
+ it.next();
200
+ it.next();
201
+ }
202
+
197
203
assert_eq!(calls, 3);
198
204
~~~
199
205
You can’t perform that action at this time.
0 commit comments