X-Git-Url: http://git.scottworley.com/tablify/blobdiff_plain/b89077705f91d010ac22f3f4cabe5336257a0758..d22b2e05706f7a4367ac3df33d61383673724b8b:/src/lib.rs diff --git a/src/lib.rs b/src/lib.rs index 01668eb..2dd3964 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -51,8 +51,8 @@ impl From<&str> for Entry { instance: None, }, Some((col, instance)) => Entry { - col: String::from(col), - instance: Some(String::from(instance)), + col: String::from(col.trim()), + instance: Some(String::from(instance.trim())), }, } } @@ -141,6 +141,12 @@ fn column_counts(rows: &[RowInput]) -> Vec<(usize, String)> { counts.sort(); counts } +fn column_order(rows: &[RowInput]) -> Vec { + column_counts(rows) + .into_iter() + .map(|(_, col)| col) + .collect() +} /// # Errors /// @@ -150,7 +156,7 @@ fn column_counts(rows: &[RowInput]) -> Vec<(usize, String)> { /// * an indented line with no preceding non-indented line pub fn tablify(input: impl std::io::Read) -> Result { let rows = read_rows(input).collect::, _>>()?; - let _columns = column_counts(&rows); + let _columns = column_order(&rows); Ok(String::from(HEADER) + "Hello, world!" + FOOTER) } @@ -174,6 +180,13 @@ mod tests { instance: Some(String::from("bar")) } ); + assert_eq!( + Entry::from("foo: bar"), + Entry { + col: String::from("foo"), + instance: Some(String::from("bar")) + } + ); } #[test]