15
15
//! ```
16
16
//!
17
17
18
- use { ArrayLength , GenericArray } ;
19
18
use core:: cmp:: min;
20
19
use core:: fmt;
21
20
use core:: ops:: Add ;
22
21
use core:: str;
23
22
use typenum:: * ;
23
+ use { ArrayLength , GenericArray } ;
24
24
25
25
static LOWER_CHARS : & ' static [ u8 ] = b"0123456789abcdef" ;
26
26
static UPPER_CHARS : & ' static [ u8 ] = b"0123456789ABCDEF" ;
@@ -39,21 +39,23 @@ where
39
39
// buffer of 2x number of bytes
40
40
let mut res = GenericArray :: < u8 , Sum < T , T > > :: default ( ) ;
41
41
42
- for ( i , c ) in self . iter ( ) . take ( max_hex) . enumerate ( ) {
42
+ self . iter ( ) . take ( max_hex) . enumerate ( ) . for_each ( | ( i , c ) | {
43
43
res[ i * 2 ] = LOWER_CHARS [ ( c >> 4 ) as usize ] ;
44
44
res[ i * 2 + 1 ] = LOWER_CHARS [ ( c & 0xF ) as usize ] ;
45
- }
45
+ } ) ;
46
+
46
47
f. write_str ( unsafe { str:: from_utf8_unchecked ( & res[ ..max_digits] ) } ) ?;
47
48
} else {
48
49
// For large array use chunks of up to 1024 bytes (2048 hex chars)
49
50
let mut buf = [ 0u8 ; 2048 ] ;
50
51
let mut digits_left = max_digits;
51
52
52
53
for chunk in self [ ..max_hex] . chunks ( 1024 ) {
53
- for ( i , c ) in chunk. iter ( ) . enumerate ( ) {
54
+ chunk. iter ( ) . enumerate ( ) . for_each ( | ( i , c ) | {
54
55
buf[ i * 2 ] = LOWER_CHARS [ ( c >> 4 ) as usize ] ;
55
56
buf[ i * 2 + 1 ] = LOWER_CHARS [ ( c & 0xF ) as usize ] ;
56
- }
57
+ } ) ;
58
+
57
59
let n = min ( chunk. len ( ) * 2 , digits_left) ;
58
60
f. write_str ( unsafe { str:: from_utf8_unchecked ( & buf[ ..n] ) } ) ?;
59
61
digits_left -= n;
@@ -77,21 +79,23 @@ where
77
79
// buffer of 2x number of bytes
78
80
let mut res = GenericArray :: < u8 , Sum < T , T > > :: default ( ) ;
79
81
80
- for ( i , c ) in self . iter ( ) . take ( max_hex) . enumerate ( ) {
82
+ self . iter ( ) . take ( max_hex) . enumerate ( ) . for_each ( | ( i , c ) | {
81
83
res[ i * 2 ] = UPPER_CHARS [ ( c >> 4 ) as usize ] ;
82
84
res[ i * 2 + 1 ] = UPPER_CHARS [ ( c & 0xF ) as usize ] ;
83
- }
85
+ } ) ;
86
+
84
87
f. write_str ( unsafe { str:: from_utf8_unchecked ( & res[ ..max_digits] ) } ) ?;
85
88
} else {
86
89
// For large array use chunks of up to 1024 bytes (2048 hex chars)
87
90
let mut buf = [ 0u8 ; 2048 ] ;
88
91
let mut digits_left = max_digits;
89
92
90
93
for chunk in self [ ..max_hex] . chunks ( 1024 ) {
91
- for ( i , c ) in chunk. iter ( ) . enumerate ( ) {
94
+ chunk. iter ( ) . enumerate ( ) . for_each ( | ( i , c ) | {
92
95
buf[ i * 2 ] = UPPER_CHARS [ ( c >> 4 ) as usize ] ;
93
96
buf[ i * 2 + 1 ] = UPPER_CHARS [ ( c & 0xF ) as usize ] ;
94
- }
97
+ } ) ;
98
+
95
99
let n = min ( chunk. len ( ) * 2 , digits_left) ;
96
100
f. write_str ( unsafe { str:: from_utf8_unchecked ( & buf[ ..n] ) } ) ?;
97
101
digits_left -= n;
0 commit comments