Skip to content
This repository was archived by the owner on Mar 25, 2024. It is now read-only.

Commit 728df48

Browse files
committed
Improve more Debug representations
1 parent 92a9bdb commit 728df48

File tree

3 files changed

+35
-30
lines changed

3 files changed

+35
-30
lines changed

src/mapping.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ use std::iter::FromIterator;
1111
use std::mem;
1212

1313
/// A YAML mapping in which the keys and values are both `serde_yaml::Value`.
14-
#[derive(Clone, Debug, Default, Eq, PartialEq)]
14+
#[derive(Clone, Default, Eq, PartialEq)]
1515
pub struct Mapping {
1616
map: IndexMap<Value, Value>,
1717
}

src/number.rs

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ use crate::Error;
22
use serde::de::{Unexpected, Visitor};
33
use serde::{forward_to_deserialize_any, Deserialize, Deserializer, Serialize, Serializer};
44
use std::cmp::Ordering;
5-
use std::fmt::{self, Debug, Display};
5+
use std::fmt::{self, Display};
66
use std::hash::{Hash, Hasher};
77

88
/// Represents a YAML number, whether integer or floating point.
@@ -14,7 +14,7 @@ pub struct Number {
1414
// "N" is a prefix of "NegInt"... this is a false positive.
1515
// https://github.com/Manishearth/rust-clippy/issues/1241
1616
#[allow(clippy::enum_variant_names)]
17-
#[derive(Copy, Clone, Debug)]
17+
#[derive(Copy, Clone)]
1818
enum N {
1919
PosInt(u64),
2020
/// Always less than zero.
@@ -290,7 +290,7 @@ impl Number {
290290
}
291291
}
292292

293-
impl fmt::Display for Number {
293+
impl Display for Number {
294294
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
295295
match self.n {
296296
N::PosInt(i) => Display::fmt(&i, formatter),
@@ -308,12 +308,6 @@ impl fmt::Display for Number {
308308
}
309309
}
310310

311-
impl Debug for Number {
312-
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
313-
Debug::fmt(&self.n, formatter)
314-
}
315-
}
316-
317311
impl PartialEq for N {
318312
fn eq(&self, other: &N) -> bool {
319313
match (*self, *other) {

src/value/debug.rs

Lines changed: 31 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
use crate::mapping::Mapping;
12
use crate::value::{Number, Value};
23
use std::fmt::{self, Debug, Display};
34

@@ -12,26 +13,7 @@ impl Debug for Value {
1213
formatter.write_str("Sequence ")?;
1314
formatter.debug_list().entries(sequence).finish()
1415
}
15-
Value::Mapping(mapping) => {
16-
formatter.write_str("Mapping ")?;
17-
let mut debug = formatter.debug_map();
18-
for (k, v) in mapping {
19-
let tmp;
20-
debug.entry(
21-
match k {
22-
Value::Bool(boolean) => boolean,
23-
Value::Number(number) => {
24-
tmp = DisplayNumber(number);
25-
&tmp
26-
}
27-
Value::String(string) => string,
28-
_ => k,
29-
},
30-
v,
31-
);
32-
}
33-
debug.finish()
34-
}
16+
Value::Mapping(mapping) => Debug::fmt(mapping, formatter),
3517
Value::Tagged(tagged) => Debug::fmt(tagged, formatter),
3618
}
3719
}
@@ -44,3 +26,32 @@ impl<'a> Debug for DisplayNumber<'a> {
4426
Display::fmt(self.0, formatter)
4527
}
4628
}
29+
30+
impl Debug for Number {
31+
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
32+
write!(formatter, "Number({})", self)
33+
}
34+
}
35+
36+
impl Debug for Mapping {
37+
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
38+
formatter.write_str("Mapping ")?;
39+
let mut debug = formatter.debug_map();
40+
for (k, v) in self {
41+
let tmp;
42+
debug.entry(
43+
match k {
44+
Value::Bool(boolean) => boolean,
45+
Value::Number(number) => {
46+
tmp = DisplayNumber(number);
47+
&tmp
48+
}
49+
Value::String(string) => string,
50+
_ => k,
51+
},
52+
v,
53+
);
54+
}
55+
debug.finish()
56+
}
57+
}

0 commit comments

Comments
 (0)