diff options
| author | Patrick Walton <pcwalton@mimiga.net> | 2011-07-12 16:36:47 -0700 |
|---|---|---|
| committer | Patrick Walton <pcwalton@mimiga.net> | 2011-07-12 16:36:47 -0700 |
| commit | ccd0fffcce5a0f47747bc30b31f8c2c37b3ef746 (patch) | |
| tree | f93b357e4ce43383c97065f653bf649e3111bd96 /src/lib | |
| parent | e038e8e52bebe33ca2d949122bf876bbb2d97936 (diff) | |
| download | rust-ccd0fffcce5a0f47747bc30b31f8c2c37b3ef746.tar.gz rust-ccd0fffcce5a0f47747bc30b31f8c2c37b3ef746.zip | |
stdlib: Implement str::split_ivec()
Diffstat (limited to 'src/lib')
| -rw-r--r-- | src/lib/str.rs | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/lib/str.rs b/src/lib/str.rs index 079c502b85f..8591ec6aecb 100644 --- a/src/lib/str.rs +++ b/src/lib/str.rs @@ -442,6 +442,21 @@ fn split(str s, u8 sep) -> vec[str] { ret v; } +fn split_ivec(str s, u8 sep) -> str[] { + let str[] v = ~[]; + let str accum = ""; + let bool ends_with_sep = false; + for (u8 c in s) { + if (c == sep) { + v += ~[accum]; + accum = ""; + ends_with_sep = true; + } else { accum += unsafe_from_byte(c); ends_with_sep = false; } + } + if (str::byte_len(accum) != 0u || ends_with_sep) { v += ~[accum]; } + ret v; +} + fn concat(vec[str] v) -> str { let str s = ""; for (str ss in v) { s += ss; } |
