Restore 100% coverage after Value::None addition
Remove Value::None from is_primitive and to_kdl_value since None values
are skipped at the struct/map level and never reach the primitive-vec
serialization path. Add Vec<()> roundtrip test to cover Value::Null in
to_kdl_value.
change krmxvynrvzzrntnmvktpoqtmoqrmsolo
commit a9d2b6f5ad0560c9e1dad500080eba36346f501e
author Alpha Chen <alpha@kejadlen.dev>
date
parent tulwqkzv
diff --git a/src/ser.rs b/src/ser.rs
index df5e3d1..bab87e3 100644
--- a/src/ser.rs
+++ b/src/ser.rs
@@ -60,18 +60,12 @@ impl Value {
     fn is_primitive(&self) -> bool {
         matches!(
             self,
-            Value::None
-                | Value::Null
-                | Value::Bool(_)
-                | Value::Integer(_)
-                | Value::Float(_)
-                | Value::String(_)
+            Value::Null | Value::Bool(_) | Value::Integer(_) | Value::Float(_) | Value::String(_)
         )
     }
 
     fn to_kdl_value(&self) -> Option<KdlValue> {
         match self {
-            Value::None => Some(KdlValue::Null),
             Value::Null => Some(KdlValue::Null),
             Value::Bool(b) => Some(KdlValue::Bool(*b)),
             Value::Integer(i) => Some(KdlValue::Integer(*i)),
diff --git a/tests/integration.rs b/tests/integration.rs
index 9669e6b..3f57f2a 100644
--- a/tests/integration.rs
+++ b/tests/integration.rs
@@ -956,6 +956,21 @@ fn serialize_vec_option_with_nulls() {
     assert!(output.contains("#null"));
 }
 
+#[test]
+fn serialize_vec_unit() {
+    #[derive(Serialize, Deserialize, Debug, PartialEq)]
+    struct S {
+        markers: Vec<()>,
+    }
+    let val = S {
+        markers: vec![(), ()],
+    };
+    let output = serde_kdl2::to_string(&val).unwrap();
+    assert!(output.contains("#null"));
+    let rt: S = serde_kdl2::from_str(&output).unwrap();
+    assert_eq!(val, rt);
+}
+
 #[test]
 fn serialize_mixed_seq_with_null() {
     #[derive(Serialize, Debug)]