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..1b80e97 100644 --- a/crates/format/src/input.rs +++ b/crates/format/src/input.rs @@ -36,20 +36,29 @@ 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, } #[derive(Clone, Debug, Default, Serialize, Deserialize, Eq, PartialEq)] pub struct BalanceAssertion { + /// An optional comment on the balance assertion. + #[serde(skip_serializing_if = "Option::is_none")] + pub comment: Option, + /// The address that the balance assertion should be done on. /// /// This is a string which will be resolved into an address when being processed. Therefore, @@ -64,6 +73,10 @@ pub struct BalanceAssertion { #[derive(Clone, Debug, Default, Serialize, Deserialize, Eq, PartialEq)] pub struct StorageEmptyAssertion { + /// An optional comment on the storage empty assertion. + #[serde(skip_serializing_if = "Option::is_none")] + pub comment: Option, + /// The address that the balance assertion should be done on. /// /// This is a string which will be resolved into an address when being processed. Therefore, @@ -86,8 +99,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 +111,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, }