use schemars::SchemaGenerator;
use super::UserConfig;
pub fn valid_user_config_keys() -> Vec<String> {
let schema = SchemaGenerator::default().into_root_schema_for::<UserConfig>();
schema
.as_object()
.and_then(|obj| obj.get("properties"))
.and_then(|p| p.as_object())
.map(|props| props.keys().cloned().collect())
.unwrap_or_default()
}
pub fn find_unknown_keys(contents: &str) -> std::collections::HashMap<String, toml::Value> {
let Ok(table) = contents.parse::<toml::Table>() else {
return std::collections::HashMap::new();
};
let valid_keys = valid_user_config_keys();
table
.into_iter()
.filter(|(key, _)| !valid_keys.contains(key))
.collect()
}