From ccd0fffcce5a0f47747bc30b31f8c2c37b3ef746 Mon Sep 17 00:00:00 2001 From: Patrick Walton Date: Tue, 12 Jul 2011 16:36:47 -0700 Subject: [PATCH] stdlib: Implement str::split_ivec() --- src/lib/str.rs | 15 +++++++++++++++ 1 file changed, 15 insertions(+) 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; }