use crate ::mapping::Mapping;
use crate ::value::{Number, Value};
use std::fmt::{self , Debug, Display};
impl Debug for Value {
fn fmt(&self , formatter: &mut fmt::Formatter) -> fmt::Result {
match self {
Value::Null => formatter.write_str("Null" ),
Value::Bool(boolean) => write!(formatter, "Bool({})" , boolean),
Value::Number(number) => write!(formatter, "Number({})" , number),
Value::String(string) => write!(formatter, "String({:?})" , string),
Value::Sequence(sequence) => {
formatter.write_str("Sequence " )?;
formatter.debug_list().entries(sequence).finish()
}
Value::Mapping(mapping) => Debug::fmt(mapping, formatter),
Value::Tagged(tagged) => Debug::fmt(tagged, formatter),
}
}
}
struct DisplayNumber<'a>(&' a Number);
impl <'a> Debug for DisplayNumber<' a> {
fn fmt(&self , formatter: &mut fmt::Formatter) -> fmt::Result {
Display::fmt(self .0 , formatter)
}
}
impl Debug for Number {
fn fmt(&self , formatter: &mut fmt::Formatter) -> fmt::Result {
write!(formatter, "Number({})" , self )
}
}
impl Debug for Mapping {
fn fmt(&self , formatter: &mut fmt::Formatter) -> fmt::Result {
formatter.write_str("Mapping " )?;
let mut debug = formatter.debug_map();
for (k, v) in self {
let tmp;
debug.entry(
match k {
Value::Bool(boolean) => boolean,
Value::Number(number) => {
tmp = DisplayNumber(number);
&tmp
}
Value::String(string) => string,
_ => k,
},
v,
);
}
debug.finish()
}
}
Messung V0.5 in Prozent C=100 H=100 G=100
¤ Dauer der Verarbeitung: 0.9 Sekunden
(vorverarbeitet am 2026-08-25)
¤
*© Formatika GbR, Deutschland