use std::collections::HashMap;
use serde::Deserialize;
#[derive(Debug, Default, Deserialize)]
pub struct Config {
#[serde(default)]
pub ignore: IgnoreSection,
#[serde(default, rename = "new_child")]
pub new_child: HashMap<String, Vec<String>>,
#[serde(default, rename = "cpp_objects")]
pub cpp_objects: HashMap<String, String>,
#[serde(default)]
pub globals: GlobalsSection,
}
#[derive(Debug, Default, Deserialize)]
pub struct IgnoreSection {
#[serde(default)]
pub paths: Vec<String>,
}
#[derive(Debug, Default, Deserialize)]
pub struct GlobalsSection {
#[serde(default)]
pub names: Vec<String>,
}
#[derive(Debug, Default, Deserialize)]
pub struct CppNamesSection {
#[serde(default)]
pub names: Vec<String>,
}
pub fn parse_config(source: &str) -> Config {
toml::from_str(source).unwrap_or_else(|e| {
eprintln!("warning: failed to parse config: {e}");
Config::default()
})
}