let dynamic_columns = columns.iter().map(Some);
static_columns
.chain(dynamic_columns)
- .filter(|ocol| ocol.map_or(true, |col| !config.hidden_columns.contains(col)))
+ .filter(|ocol| ocol.is_none_or(|col| !config.hidden_columns.contains(col)))
.map(|ocol| {
ocol.map(|col| match config.substitute_labels.get(col) {
None => col,
/// * there's an i/o error while reading `input`
/// * the log has invalid syntax:
/// * an indented line with no preceding non-indented line
-pub fn tablify(input: impl std::io::Read) -> Result<HTML, std::io::Error> {
+pub fn tablify<R: std::io::Read>(input: R) -> Result<HTML, std::io::Error> {
let (rows, config) = read_input(input)?;
let columns = column_order(&config, &rows);
Ok(HTML(format!(