From 21c3990026e79b0b0e0e88e8e2ecdfe7bd6d4778 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Tue, 10 Jan 2023 01:09:46 +0000 Subject: [PATCH] Config inspection: Allow inspection of multiple keys Signed-off-by: Ian Jackson --- src/config.rs | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/config.rs b/src/config.rs index c20cfcd..c88832e 100644 --- a/src/config.rs +++ b/src/config.rs @@ -97,14 +97,19 @@ pub trait InspectableConfig { #[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::,_>>()? + .join(" "); + println!("{}", output); } pub trait InspectableConfigValue { -- 2.30.2