X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=src%2Flibcollections%2Fstr.rs;h=19ca1c9fd2bcea1ecb5f1085de743384d1ee2e93;hb=31e21613eefcf30e6b7a10954bbbfc873d30ad88;hp=2e96b941c08e0cb07d0b10c85fefddcdcba98e82;hpb=2ea38750e92e199654968aa4dbb3462de71f7b50;p=rust.git diff --git a/src/libcollections/str.rs b/src/libcollections/str.rs index 2e96b941c08..19ca1c9fd2b 100644 --- a/src/libcollections/str.rs +++ b/src/libcollections/str.rs @@ -51,21 +51,19 @@ #![doc(primitive = "str")] +use core::prelude::*; + pub use self::MaybeOwned::*; use self::RecompositionState::*; use self::DecompositionType::*; + use core::borrow::{BorrowFrom, Cow, ToOwned}; use core::default::Default; use core::fmt; +use core::hash; use core::cmp; use core::iter::AdditiveIterator; -use core::kinds::Sized; -use core::prelude::{Char, Clone, Eq, Equiv}; -use core::prelude::{Iterator, IteratorExt, SlicePrelude, None, Option, Ord, Ordering}; -use core::prelude::{PartialEq, PartialOrd, Result, AsSlice, Some, Tuple2}; -use core::prelude::{range}; -use hash; use ring_buf::RingBuf; use string::String; use unicode; @@ -185,8 +183,8 @@ fn canonical_sort(comb: &mut [(char, u8)]) { for i in range(0, len) { let mut swapped = false; for j in range(1, len-i) { - let class_a = *comb[j-1].ref1(); - let class_b = *comb[j].ref1(); + let class_a = comb[j-1].1; + let class_b = comb[j].1; if class_a != 0 && class_b != 0 && class_a > class_b { comb.swap(j-1, j); swapped = true; @@ -849,10 +847,10 @@ mod tests { use std::iter::{Iterator, IteratorExt, DoubleEndedIteratorExt}; use super::*; - use std::slice::{AsSlice, SlicePrelude}; + use std::slice::{AsSlice, SliceExt}; use string::String; use vec::Vec; - use slice::CloneSliceAllocPrelude; + use slice::CloneSliceExt; use unicode::char::UnicodeChar; @@ -903,21 +901,21 @@ fn test_len() { #[test] fn test_find() { assert_eq!("hello".find('l'), Some(2u)); - assert_eq!("hello".find(|c:char| c == 'o'), Some(4u)); + assert_eq!("hello".find(|&: c:char| c == 'o'), Some(4u)); assert!("hello".find('x').is_none()); - assert!("hello".find(|c:char| c == 'x').is_none()); + assert!("hello".find(|&: c:char| c == 'x').is_none()); assert_eq!("ประเทศไทย中华Việt Nam".find('华'), Some(30u)); - assert_eq!("ประเทศไทย中华Việt Nam".find(|c: char| c == '华'), Some(30u)); + assert_eq!("ประเทศไทย中华Việt Nam".find(|&: c: char| c == '华'), Some(30u)); } #[test] fn test_rfind() { assert_eq!("hello".rfind('l'), Some(3u)); - assert_eq!("hello".rfind(|c:char| c == 'o'), Some(4u)); + assert_eq!("hello".rfind(|&: c:char| c == 'o'), Some(4u)); assert!("hello".rfind('x').is_none()); - assert!("hello".rfind(|c:char| c == 'x').is_none()); + assert!("hello".rfind(|&: c:char| c == 'x').is_none()); assert_eq!("ประเทศไทย中华Việt Nam".rfind('华'), Some(30u)); - assert_eq!("ประเทศไทย中华Việt Nam".rfind(|c: char| c == '华'), Some(30u)); + assert_eq!("ประเทศไทย中华Việt Nam".rfind(|&: c: char| c == '华'), Some(30u)); } #[test] @@ -1281,7 +1279,7 @@ fn test_trim_left_chars() { assert_eq!("11foo1bar11".trim_left_chars('1'), "foo1bar11"); let chars: &[char] = &['1', '2']; assert_eq!("12foo1bar12".trim_left_chars(chars), "foo1bar12"); - assert_eq!("123foo1bar123".trim_left_chars(|c: char| c.is_numeric()), "foo1bar123"); + assert_eq!("123foo1bar123".trim_left_chars(|&: c: char| c.is_numeric()), "foo1bar123"); } #[test] @@ -1296,7 +1294,7 @@ fn test_trim_right_chars() { assert_eq!("11foo1bar11".trim_right_chars('1'), "11foo1bar"); let chars: &[char] = &['1', '2']; assert_eq!("12foo1bar12".trim_right_chars(chars), "12foo1bar"); - assert_eq!("123foo1bar123".trim_right_chars(|c: char| c.is_numeric()), "123foo1bar"); + assert_eq!("123foo1bar123".trim_right_chars(|&: c: char| c.is_numeric()), "123foo1bar"); } #[test] @@ -1311,7 +1309,7 @@ fn test_trim_chars() { assert_eq!("11foo1bar11".trim_chars('1'), "foo1bar"); let chars: &[char] = &['1', '2']; assert_eq!("12foo1bar12".trim_chars(chars), "foo1bar"); - assert_eq!("123foo1bar123".trim_chars(|c: char| c.is_numeric()), "foo1bar"); + assert_eq!("123foo1bar123".trim_chars(|&: c: char| c.is_numeric()), "foo1bar"); } #[test] @@ -1599,17 +1597,24 @@ fn test_char_at_reverse() { #[test] fn test_escape_unicode() { - assert_eq!("abc".escape_unicode(), String::from_str("\\x61\\x62\\x63")); - assert_eq!("a c".escape_unicode(), String::from_str("\\x61\\x20\\x63")); - assert_eq!("\r\n\t".escape_unicode(), String::from_str("\\x0d\\x0a\\x09")); - assert_eq!("'\"\\".escape_unicode(), String::from_str("\\x27\\x22\\x5c")); + assert_eq!("abc".escape_unicode(), + String::from_str("\\u{61}\\u{62}\\u{63}")); + assert_eq!("a c".escape_unicode(), + String::from_str("\\u{61}\\u{20}\\u{63}")); + assert_eq!("\r\n\t".escape_unicode(), + String::from_str("\\u{d}\\u{a}\\u{9}")); + assert_eq!("'\"\\".escape_unicode(), + String::from_str("\\u{27}\\u{22}\\u{5c}")); assert_eq!("\x00\x01\u{fe}\u{ff}".escape_unicode(), - String::from_str("\\x00\\x01\\u00fe\\u00ff")); - assert_eq!("\u{100}\u{ffff}".escape_unicode(), String::from_str("\\u0100\\uffff")); + String::from_str("\\u{0}\\u{1}\\u{fe}\\u{ff}")); + assert_eq!("\u{100}\u{ffff}".escape_unicode(), + String::from_str("\\u{100}\\u{ffff}")); assert_eq!("\u{10000}\u{10ffff}".escape_unicode(), - String::from_str("\\U00010000\\U0010ffff")); - assert_eq!("ab\u{fb00}".escape_unicode(), String::from_str("\\x61\\x62\\ufb00")); - assert_eq!("\u{1d4ea}\r".escape_unicode(), String::from_str("\\U0001d4ea\\x0d")); + String::from_str("\\u{10000}\\u{10ffff}")); + assert_eq!("ab\u{fb00}".escape_unicode(), + String::from_str("\\u{61}\\u{62}\\u{fb00}")); + assert_eq!("\u{1d4ea}\r".escape_unicode(), + String::from_str("\\u{1d4ea}\\u{d}")); } #[test] @@ -1618,11 +1623,14 @@ fn test_escape_default() { assert_eq!("a c".escape_default(), String::from_str("a c")); assert_eq!("\r\n\t".escape_default(), String::from_str("\\r\\n\\t")); assert_eq!("'\"\\".escape_default(), String::from_str("\\'\\\"\\\\")); - assert_eq!("\u{100}\u{ffff}".escape_default(), String::from_str("\\u0100\\uffff")); + assert_eq!("\u{100}\u{ffff}".escape_default(), + String::from_str("\\u{100}\\u{ffff}")); assert_eq!("\u{10000}\u{10ffff}".escape_default(), - String::from_str("\\U00010000\\U0010ffff")); - assert_eq!("ab\u{fb00}".escape_default(), String::from_str("ab\\ufb00")); - assert_eq!("\u{1d4ea}\r".escape_default(), String::from_str("\\U0001d4ea\\r")); + String::from_str("\\u{10000}\\u{10ffff}")); + assert_eq!("ab\u{fb00}".escape_default(), + String::from_str("ab\\u{fb00}")); + assert_eq!("\u{1d4ea}\r".escape_default(), + String::from_str("\\u{1d4ea}\\r")); } #[test] @@ -1787,14 +1795,14 @@ fn test_splitn_char_iterator() { let split: Vec<&str> = data.splitn(3, ' ').collect(); assert_eq!(split, vec!["\nMäry", "häd", "ä", "little lämb\nLittle lämb\n"]); - let split: Vec<&str> = data.splitn(3, |c: char| c == ' ').collect(); + let split: Vec<&str> = data.splitn(3, |&: c: char| c == ' ').collect(); assert_eq!(split, vec!["\nMäry", "häd", "ä", "little lämb\nLittle lämb\n"]); // Unicode let split: Vec<&str> = data.splitn(3, 'ä').collect(); assert_eq!(split, vec!["\nM", "ry h", "d ", " little lämb\nLittle lämb\n"]); - let split: Vec<&str> = data.splitn(3, |c: char| c == 'ä').collect(); + let split: Vec<&str> = data.splitn(3, |&: c: char| c == 'ä').collect(); assert_eq!(split, vec!["\nM", "ry h", "d ", " little lämb\nLittle lämb\n"]); } @@ -2464,7 +2472,7 @@ mod bench { use super::*; use std::iter::{IteratorExt, DoubleEndedIteratorExt}; use std::str::StrPrelude; - use std::slice::SlicePrelude; + use std::slice::SliceExt; #[bench] fn char_iterator(b: &mut Bencher) { @@ -2588,7 +2596,7 @@ fn split_closure(b: &mut Bencher) { let s = "Mary had a little lamb, Little lamb, little-lamb."; let len = s.split(' ').count(); - b.iter(|| assert_eq!(s.split(|c: char| c == ' ').count(), len)); + b.iter(|| assert_eq!(s.split(|&: c: char| c == ' ').count(), len)); } #[bench]