#[throws(AE)]
pub fn implement_print_config<'f>(
- key: &str,
+ arg: &str,
inspect_key: &dyn Fn(&str) -> Option<&'f dyn InspectableConfigValue>
) {
- if let Some(inspectable) = inspect_key(key) {
- println!("{}", DisplayInspectable(inspectable));
- } else {
- throw!(anyhow!("unknown config key {:?}", key));
- }
+ let output = arg
+ .split(',')
+ .map(|key| {
+ let insp = inspect_key(key)
+ .ok_or_else(|| anyhow!("unknown config key {:?}", key))?;
+ Ok::<_,AE>(DisplayInspectable(insp).to_string())
+ })
+ .collect::<Result<Vec<_>,_>>()?
+ .join(" ");
+ println!("{}", output);
}
pub trait InspectableConfigValue {