credence_lib/render/catalog/
columns.rs

1use {
2    compris::{annotate::*, normal::*},
3    kutil::std::collections::*,
4};
5
6//
7// ExtraColumns
8//
9
10/// Extra columns.
11pub type ExtraColumns<'own> = FastHashMap<&'own str, RefTraversal<'own, WithAnnotations>>;
12
13/// Flatten extra columns.
14pub fn flatten_columns(columns: Option<&Map<WithAnnotations>>) -> ExtraColumns<'_> {
15    let mut flat_columns = FastHashMap::<&str, _>::default();
16
17    if let Some(columns) = columns {
18        for (key, value) in columns {
19            if let Variant::Text(key) = key
20                && let Some(value_path) = to_ref_traversal(value)
21            {
22                flat_columns.insert(key.into(), value_path);
23            }
24        }
25    }
26
27    flat_columns
28}