File tree Expand file tree Collapse file tree 2 files changed +27
-1
lines changed Expand file tree Collapse file tree 2 files changed +27
-1
lines changed Original file line number Diff line number Diff line change 1
1
---
2
- refs/heads/master: 9bff2f25455ac781afecf09afe8d26653460601b
2
+ refs/heads/master: 8641c95221786d13c5e91f1d78c9d0158c376438
3
3
refs/heads/snap-stage1: e33de59e47c5076a89eadeb38f4934f58a3618a6
4
4
refs/heads/snap-stage3: 4a81779abd786ff22d71434c6d9a5917ea4cdfff
5
5
refs/heads/try: 2898dcc5d97da9427ac367542382b6239d9c0bbf
Original file line number Diff line number Diff line change 55
55
all_between, any_between,
56
56
map,
57
57
each,
58
+ each_char,
58
59
bytes_iter,
59
60
chars_iter,
60
61
split_char_iter,
@@ -635,6 +636,18 @@ fn each(s: str, it: fn(u8) -> bool) {
635
636
}
636
637
}
637
638
639
+ #[ doc = "Iterates over the chars in a string" ]
640
+ #[ inline( always) ]
641
+ fn each_char ( s : str , it : fn ( char ) -> bool ) {
642
+ let mut pos = 0 u;
643
+ let len = len ( s) ;
644
+ while pos < len {
645
+ let { ch, next} = char_range_at ( s, pos) ;
646
+ pos = next;
647
+ if !it ( ch) { break ; }
648
+ }
649
+ }
650
+
638
651
#[ doc = "Iterate over the characters in a string" ]
639
652
fn chars_iter ( s : str , it : fn ( char ) ) {
640
653
let mut pos = 0 u;
@@ -2669,4 +2682,17 @@ mod tests {
2669
2682
assert to_utf16( from_utf16 ( u) ) == u;
2670
2683
}
2671
2684
}
2685
+
2686
+ #[ test]
2687
+ fn test_each_char ( ) {
2688
+ let s = "abc" ;
2689
+ let mut found_b = false ;
2690
+ for each_char( s) { |ch|
2691
+ if ch == 'b' {
2692
+ found_b = true ;
2693
+ break ;
2694
+ }
2695
+ }
2696
+ assert found_b;
2697
+ }
2672
2698
}
You can’t perform that action at this time.
0 commit comments