]> git.scottworley.com Git - tablify/blobdiff - src/lib.rs
Read multiple row headers
[tablify] / src / lib.rs
index 0e2007d389f178fa37255d5ff9e47a4861916420..1d098b03d1d314ec7d6c4e94a72f2f7e6b5b94ce 100644 (file)
@@ -1,4 +1,6 @@
 #[cfg(test)]
+use std::io::BufRead;
+#[cfg(test)]
 use std::iter::Iterator;
 
 #[derive(Debug, PartialEq, Eq)]
@@ -8,12 +10,11 @@ struct RowInput {
 }
 
 #[cfg(test)]
-fn read_rows(_input: &impl std::io::Read) -> impl Iterator<Item = RowInput> {
-    vec![RowInput {
-        label: String::from("foo"),
+fn read_rows(input: impl std::io::Read) -> impl Iterator<Item = RowInput> {
+    std::io::BufReader::new(input).lines().map(|line| RowInput {
+        label: line.unwrap(),
         entries: vec![],
-    }]
-    .into_iter()
+    })
 }
 
 pub fn tablify(_input: &impl std::io::Read) -> String {
@@ -27,11 +28,31 @@ mod tests {
     #[test]
     fn test_read_rows() {
         assert_eq!(
-            read_rows(&&b"foo"[..]).collect::<Vec<_>>(),
+            read_rows(&b"foo"[..]).collect::<Vec<_>>(),
             vec![RowInput {
                 label: String::from("foo"),
                 entries: vec![]
             }]
         );
+        assert_eq!(
+            read_rows(&b"bar"[..]).collect::<Vec<_>>(),
+            vec![RowInput {
+                label: String::from("bar"),
+                entries: vec![]
+            }]
+        );
+        assert_eq!(
+            read_rows(&b"foo\nbar\n"[..]).collect::<Vec<_>>(),
+            vec![
+                RowInput {
+                    label: String::from("foo"),
+                    entries: vec![]
+                },
+                RowInput {
+                    label: String::from("bar"),
+                    entries: vec![]
+                }
+            ]
+        );
     }
 }