@@ -99,7 +99,7 @@ impl String {
99
99
///
100
100
/// ```rust
101
101
/// let input = b"Hello \xF0\x90\x80World";
102
- /// let output = std::str ::from_utf8_lossy(input);
102
+ /// let output = String ::from_utf8_lossy(input);
103
103
/// assert_eq!(output.as_slice(), "Hello \uFFFDWorld");
104
104
/// ```
105
105
pub fn from_utf8_lossy < ' a > ( v : & ' a [ u8 ] ) -> MaybeOwned < ' a > {
@@ -218,18 +218,18 @@ impl String {
218
218
Owned ( res. into_string ( ) )
219
219
}
220
220
221
- /// Decode a UTF-16 encoded vector `v` into a string , returning `None`
221
+ /// Decode a UTF-16 encoded vector `v` into a `String` , returning `None`
222
222
/// if `v` contains any invalid data.
223
223
///
224
224
/// # Example
225
225
///
226
226
/// ```rust
227
- /// // ð„žmusic
227
+ /// // 𝄞music
228
228
/// let mut v = [0xD834, 0xDD1E, 0x006d, 0x0075,
229
229
/// 0x0073, 0x0069, 0x0063];
230
- /// assert_eq!(String::from_utf16(v), Some("ð„žmusic ".to_string()));
230
+ /// assert_eq!(String::from_utf16(v), Some("𝄞music ".to_string()));
231
231
///
232
- /// // ð„žmu <invalid>ic
232
+ /// // 𝄞mu <invalid>ic
233
233
/// v[4] = 0xD800;
234
234
/// assert_eq!(String::from_utf16(v), None);
235
235
/// ```
@@ -249,13 +249,13 @@ impl String {
249
249
///
250
250
/// # Example
251
251
/// ```rust
252
- /// // ð„žmus <invalid>ic<invalid>
252
+ /// // 𝄞mus <invalid>ic<invalid>
253
253
/// let v = [0xD834, 0xDD1E, 0x006d, 0x0075,
254
254
/// 0x0073, 0xDD1E, 0x0069, 0x0063,
255
255
/// 0xD834];
256
256
///
257
257
/// assert_eq!(String::from_utf16_lossy(v),
258
- /// "ð„žmus \uFFFDic\uFFFD".to_string());
258
+ /// "𝄞mus \uFFFDic\uFFFD".to_string());
259
259
/// ```
260
260
pub fn from_utf16_lossy ( v : & [ u16 ] ) -> String {
261
261
str:: utf16_items ( v) . map ( |c| c. to_char_lossy ( ) ) . collect ( )
@@ -575,8 +575,9 @@ mod tests {
575
575
576
576
use Mutable ;
577
577
use str;
578
- use str:: { Str , StrSlice , MaybeOwned , Owned , Slice } ;
578
+ use str:: { Str , StrSlice , Owned , Slice } ;
579
579
use super :: String ;
580
+ use vec:: Vec ;
580
581
581
582
#[ test]
582
583
fn test_from_str ( ) {
@@ -587,10 +588,10 @@ mod tests {
587
588
#[ test]
588
589
fn test_from_utf8 ( ) {
589
590
let xs = Vec :: from_slice ( b"hello" ) ;
590
- assert_eq ! ( String :: from_utf8( xs) , Ok ( "hello" . to_string ( ) ) ) ;
591
+ assert_eq ! ( String :: from_utf8( xs) , Ok ( String :: from_str ( "hello" ) ) ) ;
591
592
592
- let xs = Vec :: from_slice ( "ศไทยä¸åŽViệt Nam" . as_bytes ( ) ) ;
593
- assert_eq ! ( String :: from_utf8( xs) , Ok ( "ศไทยä¸åŽViệt Nam". to_string ( ) ) ) ;
593
+ let xs = Vec :: from_slice ( "ศไทย中华Việt Nam" . as_bytes ( ) ) ;
594
+ assert_eq ! ( String :: from_utf8( xs) , Ok ( String :: from_str ( "ศไทย中华Việt Nam") ) ) ;
594
595
595
596
let xs = Vec :: from_slice ( b"hello\xFF " ) ;
596
597
assert_eq ! ( String :: from_utf8( xs) ,
@@ -602,21 +603,24 @@ mod tests {
602
603
let xs = b"hello" ;
603
604
assert_eq ! ( String :: from_utf8_lossy( xs) , Slice ( "hello" ) ) ;
604
605
605
- let xs = "ศไทยä¸åŽViệt Nam" . as_bytes ( ) ;
606
- assert_eq ! ( String :: from_utf8_lossy( xs) , Slice ( "ศไทยä¸åŽViệt Nam" ) ) ;
606
+ let xs = "ศไทย中华Việt Nam" . as_bytes ( ) ;
607
+ assert_eq ! ( String :: from_utf8_lossy( xs) , Slice ( "ศไทย中华Việt Nam" ) ) ;
607
608
608
609
let xs = b"Hello\xC2 There\xFF Goodbye" ;
609
- assert_eq ! ( String :: from_utf8_lossy( xs) , Owned ( String :: from_str( "Hello\uFFFD There\uFFFD Goodbye" ) ) ) ;
610
+ assert_eq ! ( String :: from_utf8_lossy( xs) ,
611
+ Owned ( String :: from_str( "Hello\uFFFD There\uFFFD Goodbye" ) ) ) ;
610
612
611
613
let xs = b"Hello\xC0 \x80 There\xE6 \x83 Goodbye" ;
612
614
assert_eq ! ( String :: from_utf8_lossy( xs) ,
613
615
Owned ( String :: from_str( "Hello\uFFFD \uFFFD There\uFFFD Goodbye" ) ) ) ;
614
616
615
617
let xs = b"\xF5 foo\xF5 \x80 bar" ;
616
- assert_eq ! ( String :: from_utf8_lossy( xs) , Owned ( String :: from_str( "\uFFFD foo\uFFFD \uFFFD bar" ) ) ) ;
618
+ assert_eq ! ( String :: from_utf8_lossy( xs) ,
619
+ Owned ( String :: from_str( "\uFFFD foo\uFFFD \uFFFD bar" ) ) ) ;
617
620
618
621
let xs = b"\xF1 foo\xF1 \x80 bar\xF1 \x80 \x80 baz" ;
619
- assert_eq ! ( String :: from_utf8_lossy( xs) , Owned ( String :: from_str( "\uFFFD foo\uFFFD bar\uFFFD baz" ) ) ) ;
622
+ assert_eq ! ( String :: from_utf8_lossy( xs) ,
623
+ Owned ( String :: from_str( "\uFFFD foo\uFFFD bar\uFFFD baz" ) ) ) ;
620
624
621
625
let xs = b"\xF4 foo\xF4 \x80 bar\xF4 \xBF baz" ;
622
626
assert_eq ! ( String :: from_utf8_lossy( xs) ,
@@ -635,21 +639,21 @@ mod tests {
635
639
#[ test]
636
640
fn test_from_utf16 ( ) {
637
641
let pairs =
638
- [ ( String :: from_str ( "ð…ðŒ¿ðŒ»ð†ðŒ¹ðŒ»ðŒ° \n " ) ,
642
+ [ ( String :: from_str ( "𐍅𐌿𐌻𐍆𐌹𐌻𐌰 \n " ) ,
639
643
vec ! [ 0xd800_u16 , 0xdf45_u16 , 0xd800_u16 , 0xdf3f_u16 ,
640
644
0xd800_u16 , 0xdf3b_u16 , 0xd800_u16 , 0xdf46_u16 ,
641
645
0xd800_u16 , 0xdf39_u16 , 0xd800_u16 , 0xdf3b_u16 ,
642
646
0xd800_u16 , 0xdf30_u16 , 0x000a_u16 ] ) ,
643
647
644
- ( String :: from_str ( "ð’ð‘‰ð®ð‘€ð²ð‘‹ ðð²ð‘ \n " ) ,
648
+ ( String :: from_str ( "𐐒𐑉𐐮𐑀𐐲𐑋 𐐏𐐲𐑍 \n " ) ,
645
649
vec ! [ 0xd801_u16 , 0xdc12_u16 , 0xd801_u16 ,
646
650
0xdc49_u16 , 0xd801_u16 , 0xdc2e_u16 , 0xd801_u16 ,
647
651
0xdc40_u16 , 0xd801_u16 , 0xdc32_u16 , 0xd801_u16 ,
648
652
0xdc4b_u16 , 0x0020_u16 , 0xd801_u16 , 0xdc0f_u16 ,
649
653
0xd801_u16 , 0xdc32_u16 , 0xd801_u16 , 0xdc4d_u16 ,
650
654
0x000a_u16 ] ) ,
651
655
652
- ( String :: from_str ( "ðŒ€ðŒ–ðŒ‹ðŒ„ðŒ‘ðŒ‰Â·ðŒŒðŒ„ðŒ•ðŒ„ðŒ‹ðŒ‰ðŒ‘ \n " ) ,
656
+ ( String :: from_str ( "𐌀𐌖𐌋𐌄𐌑𐌉·𐌌𐌄𐌕𐌄𐌋𐌉𐌑 \n " ) ,
653
657
vec ! [ 0xd800_u16 , 0xdf00_u16 , 0xd800_u16 , 0xdf16_u16 ,
654
658
0xd800_u16 , 0xdf0b_u16 , 0xd800_u16 , 0xdf04_u16 ,
655
659
0xd800_u16 , 0xdf11_u16 , 0xd800_u16 , 0xdf09_u16 ,
@@ -658,7 +662,7 @@ mod tests {
658
662
0xdf04_u16 , 0xd800_u16 , 0xdf0b_u16 , 0xd800_u16 ,
659
663
0xdf09_u16 , 0xd800_u16 , 0xdf11_u16 , 0x000a_u16 ] ) ,
660
664
661
- ( String :: from_str ( "ð’‹ð’˜ð’ˆð’‘ð’›ð’’ ð’•ð’“ ð’ˆð’šð’ ð’ð’œð’’ð’–ð’† ð’•ð’† \n " ) ,
665
+ ( String :: from_str ( "𐒋𐒘𐒈𐒑𐒛𐒒 𐒕𐒓 𐒈𐒚𐒍 𐒏𐒜𐒒𐒖𐒆 𐒕𐒆 \n " ) ,
662
666
vec ! [ 0xd801_u16 , 0xdc8b_u16 , 0xd801_u16 , 0xdc98_u16 ,
663
667
0xd801_u16 , 0xdc88_u16 , 0xd801_u16 , 0xdc91_u16 ,
664
668
0xd801_u16 , 0xdc9b_u16 , 0xd801_u16 , 0xdc92_u16 ,
@@ -718,7 +722,7 @@ mod tests {
718
722
719
723
// general
720
724
assert_eq ! ( String :: from_utf16_lossy( [ 0xD800 , 0xd801 , 0xdc8b , 0xD800 ] ) ,
721
- String :: from_str( "\uFFFD ð’‹ \uFFFD " ) ) ;
725
+ String :: from_str( "\uFFFD 𐒋 \uFFFD " ) ) ;
722
726
}
723
727
724
728
#[ test]
@@ -852,7 +856,8 @@ mod tests {
852
856
853
857
#[ bench]
854
858
fn from_utf8_lossy_100_multibyte ( b : & mut Bencher ) {
855
- let s = "ðŒ€ðŒ–ðŒ‹ðŒ„ðŒ‘ðŒ‰à¸›à¸£Ø¯ÙˆÙ„Ø© الكويتทศไทยä¸åŽð…ðŒ¿ðŒ»ð†ðŒ¹ðŒ»ðŒ°" . as_bytes ( ) ;
859
+ let s = "ðŒ€ðŒ–ðŒ‹ðŒ„ðŒ‘ðŒ‰à¸›à¸£Ø¯ÙˆÙ„Ø©\
860
+ الكويتทศไทยä¸åŽð…ðŒ¿ðŒ»ð†ðŒ¹ðŒ»ðŒ°". as_bytes ( ) ;
856
861
assert_eq ! ( 100 , s. len( ) ) ;
857
862
b. iter ( || {
858
863
let _ = String :: from_utf8_lossy ( s) ;
0 commit comments