config::startup(
"hippotatd", LinkEnd::Server,
- &opts.config, &opts.log, |_, ics|
+ &opts.config, &opts.log, |server_name, ics|
{
let global_config = config::InstanceConfigGlobal::from(&ics);
+ let server_name = server_name.expect("LinkEnd::Server didn't do its job");
{
let pc = PrintConfigOpt(&opts.print_config);
+ let gc = (&server_name, &global_config);
- if pc.keys().all(|k| global_config.inspect_key(k).is_some()) {
- pc.implement(&mut iter::once(&global_config))?;
+ if pc.keys().all(|k| gc.inspect_key(k).is_some()) {
+ pc.implement(&mut iter::once(&gc))?;
} else {
pc.implement(&mut ics.iter())?;
}
-> Option<&dyn InspectableConfigValue>;
}
-impl InspectableConfig for InstanceConfigGlobal {
+impl InspectableConfig for (&ServerName, &InstanceConfigGlobal) {
fn inspect_key(&self, field: &'_ str)
-> Option<&dyn InspectableConfigValue> {
- self.inspect_key_auto(field)
+ Some(match field {
+ "server" => self.0,
+ k => return self.1.inspect_key_auto(k),
+ })
}
}