#[derive(Clone, Copy, Debug, Eq, PartialEq, Hash)]
pub enum HostRoot {
Actor,
ClickedProvince,
SelectedCountry,
TradeNodeCapital,
}
const DOCUMENTED_HOSTS: &[(&str, &str, HostRoot)] = &[
(
"interface/provinceview.gui",
"province_window",
HostRoot::ClickedProvince,
),
(
"interface/provinceview.gui",
"buildings_window",
HostRoot::ClickedProvince,
),
(
"interface/provinceview.gui",
"state_window",
HostRoot::ClickedProvince,
),
(
"interface/countrycourtview.gui",
"countrycourtview",
HostRoot::Actor,
),
(
"interface/countrygovernmentview.gui",
"countrygovernmentview",
HostRoot::Actor,
),
(
"interface/countrydiplomacyview.gui",
"countrydiplimacyview",
HostRoot::SelectedCountry,
),
(
"interface/countryeconomyview.gui",
"countryeconomyview",
HostRoot::Actor,
),
(
"interface/countrytradeview.gui",
"countrytradeview",
HostRoot::Actor,
),
(
"interface/countrytechnologyview.gui",
"countrytechnologyview",
HostRoot::Actor,
),
(
"interface/countryideasview.gui",
"countryideasview",
HostRoot::Actor,
),
(
"interface/countrymissionsview.gui",
"countrymissionsview",
HostRoot::SelectedCountry,
),
(
"interface/countrydecisionview.gui",
"countrydecisionsview",
HostRoot::Actor,
),
(
"interface/countrystabilityview.gui",
"countrystabilityview",
HostRoot::Actor,
),
(
"interface/countryreligionview.gui",
"countryreligionview",
HostRoot::Actor,
),
(
"interface/countrymilitaryview.gui",
"countrymilitaryview",
HostRoot::Actor,
),
(
"interface/countrysubjectsview.gui",
"countrysubjectview",
HostRoot::Actor,
),
(
"interface/countryestatesview.gui",
"countryestatesview",
HostRoot::Actor,
),
("interface/ages_view.gui", "ages_view", HostRoot::Actor),
(
"interface/tradeinterface.gui",
"TradeNodeInterface",
HostRoot::TradeNodeCapital,
),
("interface/hre.gui", "hre_window", HostRoot::Actor),
("interface/papacy.gui", "papacy_window", HostRoot::Actor),
(
"interface/celestialempireview.gui",
"celestial_window",
HostRoot::Actor,
),
(
"interface/countrynativesview.gui",
"natives_window",
HostRoot::Actor,
),
(
"interface/religiousreforms.gui",
"reforms_window",
HostRoot::Actor,
),
(
"interface/parliament.gui",
"parliament_window",
HostRoot::Actor,
),
];
pub fn documented_host(gui_file: &str, window: &str) -> Option<HostRoot> {
let gui_file = gui_file.replace('\\', "/");
DOCUMENTED_HOSTS
.iter()
.find(|(file, name, _)| file.eq_ignore_ascii_case(&gui_file) && *name == window)
.map(|(_, _, root)| *root)
}