Skip to main content

callisto_cli/render/
attribution.rs

1use callisto_graph::config::{ConfigProvenance, ResolvedConfig};
2use callisto_model::ConfigKey;
3
4pub fn attribution_line(key: &ConfigKey, cfg: &ResolvedConfig) -> String {
5    let key_str = key.as_str();
6    let formatted_key = if let Some((table, field)) = key_str.split_once('.') {
7        format!("[{table}].{field}")
8    } else {
9        key_str.to_string()
10    };
11
12    let prov = cfg.provenance(key);
13    let val = cfg.rendered_value(key).unwrap_or_else(|| "auto".to_string());
14
15    match prov {
16        ConfigProvenance::Default => format!("governed by {formatted_key} = {val} (default)"),
17        ConfigProvenance::Explicit => format!("governed by {formatted_key} = {val}"),
18    }
19}