diff --git a/src/protocol.rs b/src/protocol.rs index ef1c8b8..611b827 100644 --- a/src/protocol.rs +++ b/src/protocol.rs @@ -234,6 +234,7 @@ pub trait SourceCode: Send + Sync { #[derive(Debug, Clone, PartialEq, Eq)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] pub struct LabeledSpan { + #[cfg_attr(feature = "serde", serde(skip_serializing_if = "Option::is_none"))] label: Option, span: SourceSpan, } @@ -337,7 +338,6 @@ fn test_serialize_labeled_span() { assert_eq!( json!(LabeledSpan::new(None, 0, 0)), json!({ - "label": null, "span": { "offset": 0, "length": 0 } }) ); @@ -363,6 +363,12 @@ fn test_deserialize_labeled_span() { .unwrap(); assert_eq!(span, LabeledSpan::new(None, 0, 0)); + let span: LabeledSpan = serde_json::from_value(json!({ + "span": { "offset": 0, "length": 0 } + })) + .unwrap(); + assert_eq!(span, LabeledSpan::new(None, 0, 0)); + let span: LabeledSpan = serde_json::from_value(json!({ "label": "label", "span": { "offset": 0, "length": 0 }