summary refs log tree commit diff
path: root/lib/src
diff options
context:
space:
mode:
Diffstat (limited to 'lib/src')
-rw-r--r--lib/src/lib.rs23
1 files changed, 20 insertions, 3 deletions
diff --git a/lib/src/lib.rs b/lib/src/lib.rs
index 0272485..5f87317 100644
--- a/lib/src/lib.rs
+++ b/lib/src/lib.rs
@@ -36,12 +36,29 @@ pub fn read_lines_file(filename: &str) -> Result<Vec<String>> {
   Ok(input)
 }
 
-pub fn group_lines_by_blanks(lines: Vec<String>) -> Result<Vec<Vec<String>>> {
+pub fn trim_lines<'a>(lines: &'a Vec<String>) -> Vec<&str> {
+  let mut trimmed_lines = Vec::new();
+
+  for line in lines {
+    match line.strip_suffix("\n") {
+      Some(stripped) => {
+        trimmed_lines.push(stripped);
+      }
+      None => {
+        trimmed_lines.push(line);
+      }
+    }
+  }
+
+  trimmed_lines
+}
+
+pub fn group_lines_by_blanks(lines: Vec<&str>) -> Vec<Vec<&str>> {
   let mut all_groups = Vec::new();
   let mut current_group = Vec::new();
 
   for line in lines {
-    if line.trim().len() == 0 {
+    if line.len() == 0 {
       all_groups.push(current_group);
       current_group = Vec::new();
     } else {
@@ -53,7 +70,7 @@ pub fn group_lines_by_blanks(lines: Vec<String>) -> Result<Vec<Vec<String>>> {
     all_groups.push(current_group);
   }
 
-  Ok(all_groups)
+  all_groups
 }
 
 pub fn read_int_file(filename: &str) -> Result<Vec<i64>> {