Skip to content

Commit c9534a0

Browse files
nikomatsakislqd
authored andcommitted
elide defaulted fields in debug output
1 parent 8ec6589 commit c9534a0

File tree

1 file changed

+11
-1
lines changed

1 file changed

+11
-1
lines changed

crates/formality-macros/src/debug.rs

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -242,14 +242,24 @@ fn debug_variant_with_attr(
242242

243243
fn debug_field_with_mode(name: &Ident, mode: &FieldMode) -> TokenStream {
244244
match mode {
245-
FieldMode::Single | FieldMode::Optional => {
245+
FieldMode::Single => {
246246
quote_spanned! { name.span() =>
247247
write!(fmt, "{}", sep)?;
248248
write!(fmt, "{:?}", #name)?;
249249
sep = " ";
250250
}
251251
}
252252

253+
FieldMode::Optional => {
254+
quote_spanned! { name.span() =>
255+
if !::formality_core::util::is_default(#name) {
256+
write!(fmt, "{}", sep)?;
257+
write!(fmt, "{:?}", #name)?;
258+
sep = " ";
259+
}
260+
}
261+
}
262+
253263
FieldMode::Many => {
254264
quote_spanned! { name.span() =>
255265
for e in #name {

0 commit comments

Comments
 (0)