about summary refs log tree commit diff
diff options
context:
space:
mode:
authorBrian Anderson <banderson@mozilla.com>2011-08-11 17:19:01 -0700
committerBrian Anderson <banderson@mozilla.com>2011-08-12 12:08:27 -0700
commitcfb9cba19f145b94f181591d1d7428504e185818 (patch)
tree1ab9a8b9de70b9ef852bfdac7ce69d0252291872
parent878fbac2781a2eb55ca32789fe1ce7c45579ffdf (diff)
Convert str::from_chars, to_chars to ivecs
-rw-r--r--src/lib/str.rs22
-rw-r--r--src/test/run-pass/utf8_chars.rs5
2 files changed, 13 insertions, 14 deletions
diff --git a/src/lib/str.rs b/src/lib/str.rs
index a3e34a8ae45..08f78d002f6 100644
--- a/src/lib/str.rs
+++ b/src/lib/str.rs
@@ -241,7 +241,7 @@ fn from_char(ch: char) -> str {
     ret buf;
 }
 
-fn from_chars(chs: vec[char]) -> str {
+fn from_chars(chs: &[char]) -> str {
     let buf = "";
     for ch: char  in chs { push_utf8_bytes(buf, ch); }
     ret buf;
@@ -300,13 +300,13 @@ fn char_len(s: str) -> uint {
     ret len;
 }
 
-fn to_chars(s: str) -> vec[char] {
-    let buf: vec[char] = [];
+fn to_chars(s: str) -> [char] {
+    let buf: [char] = ~[];
     let i = 0u;
     let len = byte_len(s);
     while i < len {
         let cur = char_range_at(s, i);
-        vec::push[char](buf, cur.ch);
+        buf += ~[cur.ch];
         i = cur.next;
     }
     ret buf;
@@ -524,13 +524,13 @@ fn replace(s: str, from: str, to: str) : is_not_empty(from) -> str {
 
 // FIXME: Also not efficient
 fn char_slice(s: &str, begin: uint, end: uint) -> str {
-    from_chars(vec::slice(to_chars(s), begin, end))
+    from_chars(ivec::slice(to_chars(s), begin, end))
 }
 
 fn trim_left(s: &str) -> str {
-    fn count_whities(s: &vec[char]) -> uint {
+    fn count_whities(s: &[char]) -> uint {
         let i = 0u;
-        while i < vec::len(s) {
+        while i < ivec::len(s) {
             if !char::is_whitespace(s.(i)) {
                 break;
             }
@@ -540,12 +540,12 @@ fn trim_left(s: &str) -> str {
     }
     let chars = to_chars(s);
     let whities = count_whities(chars);
-    ret from_chars(vec::slice(chars, whities, vec::len(chars)));
+    ret from_chars(ivec::slice(chars, whities, ivec::len(chars)));
 }
 
 fn trim_right(s: &str) -> str {
-    fn count_whities(s: &vec[char]) -> uint {
-        let i = vec::len(s);
+    fn count_whities(s: &[char]) -> uint {
+        let i = ivec::len(s);
         while 0u < i {
             if !char::is_whitespace(s.(i - 1u)) {
                 break;
@@ -556,7 +556,7 @@ fn trim_right(s: &str) -> str {
     }
     let chars = to_chars(s);
     let whities = count_whities(chars);
-    ret from_chars(vec::slice(chars, 0u, whities));
+    ret from_chars(ivec::slice(chars, 0u, whities));
 }
 
 fn trim(s: &str) -> str {
diff --git a/src/test/run-pass/utf8_chars.rs b/src/test/run-pass/utf8_chars.rs
index 44ef1d78c07..44e841ce6a0 100644
--- a/src/test/run-pass/utf8_chars.rs
+++ b/src/test/run-pass/utf8_chars.rs
@@ -1,17 +1,16 @@
 use std;
 import std::str;
-import std::vec;
 import std::io;
 import std::ivec;
 
 fn main() {
     // Chars of 1, 2, 3, and 4 bytes
-    let chs: vec[char] = ['e', 'é', '€', 0x10000 as char];
+    let chs: [char] = ~['e', 'é', '€', 0x10000 as char];
     let s: str = str::from_chars(chs);
 
     assert (str::byte_len(s) == 10u);
     assert (str::char_len(s) == 4u);
-    assert (vec::len[char](str::to_chars(s)) == 4u);
+    assert (ivec::len[char](str::to_chars(s)) == 4u);
     assert (str::eq(str::from_chars(str::to_chars(s)), s));
     assert (str::char_at(s, 0u) == 'e');
     assert (str::char_at(s, 1u) == 'é');