]> git.scottworley.com Git - tablify/blobdiff - src/lib.rs
Read one row header
[tablify] / src / lib.rs
index 820f43e172653f8f26e63b84abee7d8dadb6cb95..0584cd20406662282a66cb7466bd371ab1b0b5a7 100644 (file)
@@ -1,3 +1,50 @@
+#[cfg(test)]
+use std::io::BufRead;
+#[cfg(test)]
+use std::iter::Iterator;
+
+#[derive(Debug, PartialEq, Eq)]
+struct RowInput {
+    label: String,
+    entries: Vec<String>,
+}
+
+#[cfg(test)]
+fn read_rows(input: impl std::io::Read) -> impl Iterator<Item = RowInput> {
+    vec![RowInput {
+        label: std::io::BufReader::new(input)
+            .lines()
+            .nth(0)
+            .unwrap()
+            .unwrap(),
+        entries: vec![],
+    }]
+    .into_iter()
+}
+
 pub fn tablify(_input: &impl std::io::Read) -> String {
     String::from("Hello, world!")
 }
+
+#[cfg(test)]
+mod tests {
+    use super::*;
+
+    #[test]
+    fn test_read_rows() {
+        assert_eq!(
+            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![]
+            }]
+        );
+    }
+}