1515//! ```
1616//!
1717
18- use { ArrayLength , GenericArray } ;
1918use core:: cmp:: min;
2019use core:: fmt;
2120use core:: ops:: Add ;
2221use core:: str;
2322use typenum:: * ;
23+ use { ArrayLength , GenericArray } ;
2424
2525static LOWER_CHARS : & ' static [ u8 ] = b"0123456789abcdef" ;
2626static UPPER_CHARS : & ' static [ u8 ] = b"0123456789ABCDEF" ;
@@ -39,21 +39,23 @@ where
3939 // buffer of 2x number of bytes
4040 let mut res = GenericArray :: < u8 , Sum < T , T > > :: default ( ) ;
4141
42- for ( i , c ) in self . iter ( ) . take ( max_hex) . enumerate ( ) {
42+ self . iter ( ) . take ( max_hex) . enumerate ( ) . for_each ( | ( i , c ) | {
4343 res[ i * 2 ] = LOWER_CHARS [ ( c >> 4 ) as usize ] ;
4444 res[ i * 2 + 1 ] = LOWER_CHARS [ ( c & 0xF ) as usize ] ;
45- }
45+ } ) ;
46+
4647 f. write_str ( unsafe { str:: from_utf8_unchecked ( & res[ ..max_digits] ) } ) ?;
4748 } else {
4849 // For large array use chunks of up to 1024 bytes (2048 hex chars)
4950 let mut buf = [ 0u8 ; 2048 ] ;
5051 let mut digits_left = max_digits;
5152
5253 for chunk in self [ ..max_hex] . chunks ( 1024 ) {
53- for ( i , c ) in chunk. iter ( ) . enumerate ( ) {
54+ chunk. iter ( ) . enumerate ( ) . for_each ( | ( i , c ) | {
5455 buf[ i * 2 ] = LOWER_CHARS [ ( c >> 4 ) as usize ] ;
5556 buf[ i * 2 + 1 ] = LOWER_CHARS [ ( c & 0xF ) as usize ] ;
56- }
57+ } ) ;
58+
5759 let n = min ( chunk. len ( ) * 2 , digits_left) ;
5860 f. write_str ( unsafe { str:: from_utf8_unchecked ( & buf[ ..n] ) } ) ?;
5961 digits_left -= n;
@@ -77,21 +79,23 @@ where
7779 // buffer of 2x number of bytes
7880 let mut res = GenericArray :: < u8 , Sum < T , T > > :: default ( ) ;
7981
80- for ( i , c ) in self . iter ( ) . take ( max_hex) . enumerate ( ) {
82+ self . iter ( ) . take ( max_hex) . enumerate ( ) . for_each ( | ( i , c ) | {
8183 res[ i * 2 ] = UPPER_CHARS [ ( c >> 4 ) as usize ] ;
8284 res[ i * 2 + 1 ] = UPPER_CHARS [ ( c & 0xF ) as usize ] ;
83- }
85+ } ) ;
86+
8487 f. write_str ( unsafe { str:: from_utf8_unchecked ( & res[ ..max_digits] ) } ) ?;
8588 } else {
8689 // For large array use chunks of up to 1024 bytes (2048 hex chars)
8790 let mut buf = [ 0u8 ; 2048 ] ;
8891 let mut digits_left = max_digits;
8992
9093 for chunk in self [ ..max_hex] . chunks ( 1024 ) {
91- for ( i , c ) in chunk. iter ( ) . enumerate ( ) {
94+ chunk. iter ( ) . enumerate ( ) . for_each ( | ( i , c ) | {
9295 buf[ i * 2 ] = UPPER_CHARS [ ( c >> 4 ) as usize ] ;
9396 buf[ i * 2 + 1 ] = UPPER_CHARS [ ( c & 0xF ) as usize ] ;
94- }
97+ } ) ;
98+
9599 let n = min ( chunk. len ( ) * 2 , digits_left) ;
96100 f. write_str ( unsafe { str:: from_utf8_unchecked ( & buf[ ..n] ) } ) ?;
97101 digits_left -= n;
0 commit comments