1use crate::mapping::Mapping;
2use crate::value::{Number, Value};
3use std::fmt::{self, Debug};
4
5impl Debug for Value {
6 fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
7 match self {
9 Value::Null(..) => formatter.write_str("Null"),
10 Value::Bool(boolean, ..) => write!(formatter, "Bool({})", boolean),
11 Value::Number(number, ..) => write!(formatter, "Number({})", number),
12 Value::String(string, ..) => write!(formatter, "String({:?})", string),
13 Value::Sequence(sequence, ..) => {
14 formatter.write_str("Sequence ")?;
15 formatter.debug_list().entries(sequence).finish()
16 }
17 Value::Mapping(mapping, ..) => Debug::fmt(mapping, formatter),
18 Value::Tagged(tagged, ..) => Debug::fmt(tagged, formatter),
19 }?;
20 write!(formatter, " @{{{:?}}}", self.span())
21 }
22}
23
24impl Debug for Number {
25 fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
26 write!(formatter, "Number({})", self)
27 }
28}
29
30impl Debug for Mapping {
31 fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
32 formatter.write_str("Mapping ")?;
33 let mut debug = formatter.debug_map();
34 for (k, v) in self {
35 debug.entry(k, v);
36 }
37 debug.finish()
38 }
39}