From ef49c85cf2d5b4786160edd23f013c938b0b6e32 Mon Sep 17 00:00:00 2001 From: Hatter Jiang Date: Tue, 5 May 2020 22:00:45 +0800 Subject: [PATCH] ref read_str_to_lines --- src/util_str.rs | 45 +++++++++++++++++++++++---------------------- 1 file changed, 23 insertions(+), 22 deletions(-) diff --git a/src/util_str.rs b/src/util_str.rs index 15f58b3..6c96e1d 100644 --- a/src/util_str.rs +++ b/src/util_str.rs @@ -1,28 +1,29 @@ /// Split string to lines, splited by '\r', '\n' or "\r\n" pub fn read_str_to_lines(s: &str) -> Vec { - let mut r = vec![]; - let mut line = String::new(); - let mut cs = s.chars().peekable(); - while let Some(c) = cs.next() { - if c == '\n' || c == '\r' { - r.push(line.clone()); - line.clear(); - if c == '\r' { - if let Some(nc) = cs.peek() { - if *nc == '\n' { - cs.next(); - } - } - } - } else { - line.push(c); - } - } - if !line.is_empty() { - r.push(line); - } - r + s.lines().map(|ln| ln.to_owned()).collect() + // let mut r = vec![]; + // let mut line = String::new(); + // let mut cs = s.chars().peekable(); + // while let Some(c) = cs.next() { + // if c == '\n' || c == '\r' { + // r.push(line.clone()); + // line.clear(); + // if c == '\r' { + // if let Some(nc) = cs.peek() { + // if *nc == '\n' { + // cs.next(); + // } + // } + // } + // } else { + // line.push(c); + // } + // } + // if !line.is_empty() { + // r.push(line); + // } + // r } pub fn split_kv(s: &str, split: char) -> (String, String) {