@@ -16,3 +16,59 @@ fn chars_advance_by_0010(b: &mut Bencher) {
1616fn chars_advance_by_0001 ( b : & mut Bencher ) {
1717 b. iter ( || black_box ( corpora:: ru:: LARGE ) . chars ( ) . advance_by ( 1 ) ) ;
1818}
19+
20+ mod chars_sum {
21+ use super :: * ;
22+
23+ fn bench ( b : & mut Bencher , corpus : & str ) {
24+ b. iter ( || corpus. chars ( ) . map ( |c| c as u32 ) . sum :: < u32 > ( ) )
25+ }
26+
27+ #[ bench]
28+ fn en ( b : & mut Bencher ) {
29+ bench ( b, corpora:: en:: HUGE ) ;
30+ }
31+
32+ #[ bench]
33+ fn zh ( b : & mut Bencher ) {
34+ bench ( b, corpora:: zh:: HUGE ) ;
35+ }
36+
37+ #[ bench]
38+ fn ru ( b : & mut Bencher ) {
39+ bench ( b, corpora:: zh:: HUGE ) ;
40+ }
41+
42+ #[ bench]
43+ fn emoji ( b : & mut Bencher ) {
44+ bench ( b, corpora:: zh:: HUGE ) ;
45+ }
46+ }
47+
48+ mod chars_sum_rev {
49+ use super :: * ;
50+
51+ fn bench ( b : & mut Bencher , corpus : & str ) {
52+ b. iter ( || corpus. chars ( ) . rev ( ) . map ( |c| c as u32 ) . sum :: < u32 > ( ) )
53+ }
54+
55+ #[ bench]
56+ fn en ( b : & mut Bencher ) {
57+ bench ( b, corpora:: en:: HUGE ) ;
58+ }
59+
60+ #[ bench]
61+ fn zh ( b : & mut Bencher ) {
62+ bench ( b, corpora:: zh:: HUGE ) ;
63+ }
64+
65+ #[ bench]
66+ fn ru ( b : & mut Bencher ) {
67+ bench ( b, corpora:: zh:: HUGE ) ;
68+ }
69+
70+ #[ bench]
71+ fn emoji ( b : & mut Bencher ) {
72+ bench ( b, corpora:: zh:: HUGE ) ;
73+ }
74+ }
0 commit comments