From c1c062bf56e82c35aa0511f794e36be8ac6b5eed Mon Sep 17 00:00:00 2001 From: Gabriel Goller Date: Mon, 23 Oct 2023 09:57:24 +0200 Subject: [PATCH] schema: beautify parameter error output If there is only one error, output in a single line, without any excessive newlines at the end. If there are multiple errors, show them in a bulleted list. Signed-off-by: Gabriel Goller --- proxmox-schema/src/schema.rs | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/proxmox-schema/src/schema.rs b/proxmox-schema/src/schema.rs index f0877067..21b9d8a6 100644 --- a/proxmox-schema/src/schema.rs +++ b/proxmox-schema/src/schema.rs @@ -101,14 +101,18 @@ impl fmt::Display for ParameterError { let mut msg = String::new(); if !self.is_empty() { - msg.push_str("parameter verification errors\n\n"); + if self.len() == 1 { + msg.push_str("parameter verification failed - "); + let _ = write!(msg, "'{}': {}", self.error_list[0].0, self.error_list[0].1); + } else { + msg.push_str("parameter verification failed:\n"); + for (name, err) in self.error_list.iter() { + let _ = writeln!(msg, "- '{}': {}", name, err); + } + } } - for (name, err) in self.error_list.iter() { - let _ = writeln!(msg, "parameter '{}': {}", name, err); - } - - write!(f, "{}", msg) + write!(f, "{}", msg.trim()) } }