From 37115c10e0ac78d17483cb16ee87f783b61a4252 Mon Sep 17 00:00:00 2001 From: bjorn3 Date: Sat, 3 Jul 2021 14:31:45 +0200 Subject: [PATCH] Implement Display for settings::Value --- cranelift/codegen/src/settings.rs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/cranelift/codegen/src/settings.rs b/cranelift/codegen/src/settings.rs index 09db7f55e5..1842e543fe 100644 --- a/cranelift/codegen/src/settings.rs +++ b/cranelift/codegen/src/settings.rs @@ -115,6 +115,24 @@ impl Value { } } +impl fmt::Display for Value { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + if let Some(enum_variant) = self.as_enum() { + write!(f, "{}={}", self.name, enum_variant) + } else if let Some(num) = self.as_num() { + write!(f, "{}={}", self.name, num) + } else if let Some(b) = self.as_bool() { + if b { + write!(f, "{}=1", self.name) + } else { + write!(f, "{}=0", self.name) + } + } else { + unreachable!() + } + } +} + /// Collect settings values based on a template. #[derive(Clone, Hash)] pub struct Builder {