1111// Original authors: alexchrichton, bluss
1212
1313// UTF-8 ranges and tags for encoding characters
14- const TAG_CONT : u8 = 0b1000_0000 ;
15- const TAG_TWO_B : u8 = 0b1100_0000 ;
14+ const TAG_CONT : u8 = 0b1000_0000 ;
15+ const TAG_TWO_B : u8 = 0b1100_0000 ;
1616const TAG_THREE_B : u8 = 0b1110_0000 ;
17- const TAG_FOUR_B : u8 = 0b1111_0000 ;
18- const MAX_ONE_B : u32 = 0x80 ;
19- const MAX_TWO_B : u32 = 0x800 ;
20- const MAX_THREE_B : u32 = 0x10000 ;
17+ const TAG_FOUR_B : u8 = 0b1111_0000 ;
18+ const MAX_ONE_B : u32 = 0x80 ;
19+ const MAX_TWO_B : u32 = 0x800 ;
20+ const MAX_THREE_B : u32 = 0x10000 ;
2121
2222/// Placeholder
2323pub struct EncodeUtf8Error ;
@@ -29,8 +29,7 @@ pub struct EncodeUtf8Error;
2929///
3030/// Safety: `ptr` must be writable for `len` bytes.
3131#[ inline]
32- pub unsafe fn encode_utf8 ( ch : char , ptr : * mut u8 , len : usize ) -> Result < usize , EncodeUtf8Error >
33- {
32+ pub unsafe fn encode_utf8 ( ch : char , ptr : * mut u8 , len : usize ) -> Result < usize , EncodeUtf8Error > {
3433 let code = ch as u32 ;
3534 if code < MAX_ONE_B && len >= 1 {
3635 ptr. add ( 0 ) . write ( code as u8 ) ;
@@ -41,28 +40,29 @@ pub unsafe fn encode_utf8(ch: char, ptr: *mut u8, len: usize) -> Result<usize, E
4140 return Ok ( 2 ) ;
4241 } else if code < MAX_THREE_B && len >= 3 {
4342 ptr. add ( 0 ) . write ( ( code >> 12 & 0x0F ) as u8 | TAG_THREE_B ) ;
44- ptr. add ( 1 ) . write ( ( code >> 6 & 0x3F ) as u8 | TAG_CONT ) ;
43+ ptr. add ( 1 ) . write ( ( code >> 6 & 0x3F ) as u8 | TAG_CONT ) ;
4544 ptr. add ( 2 ) . write ( ( code & 0x3F ) as u8 | TAG_CONT ) ;
4645 return Ok ( 3 ) ;
4746 } else if len >= 4 {
4847 ptr. add ( 0 ) . write ( ( code >> 18 & 0x07 ) as u8 | TAG_FOUR_B ) ;
4948 ptr. add ( 1 ) . write ( ( code >> 12 & 0x3F ) as u8 | TAG_CONT ) ;
50- ptr. add ( 2 ) . write ( ( code >> 6 & 0x3F ) as u8 | TAG_CONT ) ;
49+ ptr. add ( 2 ) . write ( ( code >> 6 & 0x3F ) as u8 | TAG_CONT ) ;
5150 ptr. add ( 3 ) . write ( ( code & 0x3F ) as u8 | TAG_CONT ) ;
5251 return Ok ( 4 ) ;
5352 } ;
5453 Err ( EncodeUtf8Error )
5554}
5655
57-
5856#[ test]
5957#[ cfg_attr( miri, ignore) ] // Miri is too slow
6058fn test_encode_utf8 ( ) {
6159 // Test that all codepoints are encoded correctly
6260 let mut data = [ 0u8 ; 16 ] ;
6361 for codepoint in 0 ..=( std:: char:: MAX as u32 ) {
6462 if let Some ( ch) = std:: char:: from_u32 ( codepoint) {
65- for elt in & mut data { * elt = 0 ; }
63+ for elt in & mut data {
64+ * elt = 0 ;
65+ }
6666 let ptr = data. as_mut_ptr ( ) ;
6767 let len = data. len ( ) ;
6868 unsafe {
@@ -89,4 +89,3 @@ fn test_encode_utf8_oob() {
8989 }
9090 }
9191}
92-
0 commit comments