1010//
1111// Original authors: alexchrichton, bluss
1212
13- use std:: ptr;
14-
1513// UTF-8 ranges and tags for encoding characters
1614const TAG_CONT : u8 = 0b1000_0000 ;
1715const TAG_TWO_B : u8 = 0b1100_0000 ;
@@ -24,11 +22,6 @@ const MAX_THREE_B: u32 = 0x10000;
2422/// Placeholder
2523pub struct EncodeUtf8Error ;
2624
27- #[ inline]
28- unsafe fn write ( ptr : * mut u8 , index : usize , byte : u8 ) {
29- ptr:: write ( ptr. add ( index) , byte)
30- }
31-
3225/// Encode a char into buf using UTF-8.
3326///
3427/// On success, return the byte length of the encoding (1, 2, 3 or 4).<br>
@@ -40,22 +33,22 @@ pub unsafe fn encode_utf8(ch: char, ptr: *mut u8, len: usize) -> Result<usize, E
4033{
4134 let code = ch as u32 ;
4235 if code < MAX_ONE_B && len >= 1 {
43- write ( ptr, 0 , code as u8 ) ;
36+ ptr. add ( 0 ) . write ( code as u8 ) ;
4437 return Ok ( 1 ) ;
4538 } else if code < MAX_TWO_B && len >= 2 {
46- write ( ptr, 0 , ( code >> 6 & 0x1F ) as u8 | TAG_TWO_B ) ;
47- write ( ptr, 1 , ( code & 0x3F ) as u8 | TAG_CONT ) ;
39+ ptr. add ( 0 ) . write ( ( code >> 6 & 0x1F ) as u8 | TAG_TWO_B ) ;
40+ ptr. add ( 1 ) . write ( ( code & 0x3F ) as u8 | TAG_CONT ) ;
4841 return Ok ( 2 ) ;
4942 } else if code < MAX_THREE_B && len >= 3 {
50- write ( ptr, 0 , ( code >> 12 & 0x0F ) as u8 | TAG_THREE_B ) ;
51- write ( ptr, 1 , ( code >> 6 & 0x3F ) as u8 | TAG_CONT ) ;
52- write ( ptr, 2 , ( code & 0x3F ) as u8 | TAG_CONT ) ;
43+ ptr. add ( 0 ) . write ( ( code >> 12 & 0x0F ) as u8 | TAG_THREE_B ) ;
44+ ptr. add ( 1 ) . write ( ( code >> 6 & 0x3F ) as u8 | TAG_CONT ) ;
45+ ptr. add ( 2 ) . write ( ( code & 0x3F ) as u8 | TAG_CONT ) ;
5346 return Ok ( 3 ) ;
5447 } else if len >= 4 {
55- write ( ptr, 0 , ( code >> 18 & 0x07 ) as u8 | TAG_FOUR_B ) ;
56- write ( ptr, 1 , ( code >> 12 & 0x3F ) as u8 | TAG_CONT ) ;
57- write ( ptr, 2 , ( code >> 6 & 0x3F ) as u8 | TAG_CONT ) ;
58- write ( ptr, 3 , ( code & 0x3F ) as u8 | TAG_CONT ) ;
48+ ptr. add ( 0 ) . write ( ( code >> 18 & 0x07 ) as u8 | TAG_FOUR_B ) ;
49+ ptr. add ( 1 ) . write ( ( code >> 12 & 0x3F ) as u8 | TAG_CONT ) ;
50+ ptr. add ( 2 ) . write ( ( code >> 6 & 0x3F ) as u8 | TAG_CONT ) ;
51+ ptr. add ( 3 ) . write ( ( code & 0x3F ) as u8 | TAG_CONT ) ;
5952 return Ok ( 4 ) ;
6053 } ;
6154 Err ( EncodeUtf8Error )
0 commit comments