From cc9781206ad42dd38e3a9c18948f84b20d31ba54 Mon Sep 17 00:00:00 2001 From: Omar Abdulla Date: Mon, 11 Aug 2025 18:38:10 +0300 Subject: [PATCH] Skip serialization of null values --- crates/format/src/case.rs | 6 ++++++ crates/format/src/input.rs | 9 +++++++++ crates/format/src/metadata.rs | 6 ++++++ 3 files changed, 21 insertions(+) diff --git a/crates/format/src/case.rs b/crates/format/src/case.rs index 26e803e..ccb9394 100644 --- a/crates/format/src/case.rs +++ b/crates/format/src/case.rs @@ -9,13 +9,19 @@ use crate::{ #[derive(Debug, Default, Serialize, Deserialize, Clone, Eq, PartialEq)] pub struct Case { + #[serde(skip_serializing_if = "Option::is_none")] pub name: Option, + #[serde(skip_serializing_if = "Option::is_none")] pub comment: Option, + #[serde(skip_serializing_if = "Option::is_none")] pub modes: Option>, #[serde(rename = "inputs")] pub steps: Vec, + #[serde(skip_serializing_if = "Option::is_none")] pub group: Option, + #[serde(skip_serializing_if = "Option::is_none")] pub expected: Option, + #[serde(skip_serializing_if = "Option::is_none")] pub ignore: Option, } diff --git a/crates/format/src/input.rs b/crates/format/src/input.rs index d742f3a..e30210b 100644 --- a/crates/format/src/input.rs +++ b/crates/format/src/input.rs @@ -36,15 +36,20 @@ pub enum Step { pub struct Input { #[serde(default = "Input::default_caller")] pub caller: Address, + #[serde(skip_serializing_if = "Option::is_none")] pub comment: Option, #[serde(default = "Input::default_instance")] pub instance: ContractInstance, pub method: Method, #[serde(default)] pub calldata: Calldata, + #[serde(skip_serializing_if = "Option::is_none")] pub expected: Option, + #[serde(skip_serializing_if = "Option::is_none")] pub value: Option, + #[serde(skip_serializing_if = "Option::is_none")] pub storage: Option>, + #[serde(skip_serializing_if = "Option::is_none")] pub variable_assignments: Option, } @@ -86,8 +91,11 @@ pub enum Expected { #[derive(Clone, Debug, Default, Serialize, Deserialize, Eq, PartialEq)] pub struct ExpectedOutput { + #[serde(skip_serializing_if = "Option::is_none")] pub compiler_version: Option, + #[serde(skip_serializing_if = "Option::is_none")] pub return_data: Option, + #[serde(skip_serializing_if = "Option::is_none")] pub events: Option>, #[serde(default)] pub exception: bool, @@ -95,6 +103,7 @@ pub struct ExpectedOutput { #[derive(Clone, Debug, Default, Serialize, Deserialize, Eq, PartialEq)] pub struct Event { + #[serde(skip_serializing_if = "Option::is_none")] pub address: Option, pub topics: Vec, pub values: Calldata, diff --git a/crates/format/src/metadata.rs b/crates/format/src/metadata.rs index 1255187..99debe3 100644 --- a/crates/format/src/metadata.rs +++ b/crates/format/src/metadata.rs @@ -45,12 +45,18 @@ impl Deref for MetadataFile { #[derive(Debug, Default, Serialize, Deserialize, Clone, Eq, PartialEq)] pub struct Metadata { + #[serde(skip_serializing_if = "Option::is_none")] pub targets: Option>, pub cases: Vec, + #[serde(skip_serializing_if = "Option::is_none")] pub contracts: Option>, + #[serde(skip_serializing_if = "Option::is_none")] pub libraries: Option>>, + #[serde(skip_serializing_if = "Option::is_none")] pub ignore: Option, + #[serde(skip_serializing_if = "Option::is_none")] pub modes: Option>, + #[serde(skip_serializing_if = "Option::is_none")] pub file_path: Option, }