INNER CODE UNIT · Rust
to_markdown
flosse/rust-web-framework-comparison · src/table.rs:8
pub fn to_markdown(data: &[Row]) -> String {
let lengths = data.iter().fold(vec![1; data[0].len()], |lens, row| {
row.iter()
.zip(lens)
.map(|(s, len)| max(s.len(), len))
.collect()
});
let rows = data
.iter()
.map(|row| {
row.iter()
.zip(&lengths)
.map(|(s, len)| s.pad_to_width(*len))
.collect::<Vec<_>>()
.join(" | ")
})
.collect::<Vec<_>>();
let separator = lengths