From 8c952fbcacff156643652caa6711f34068492c66 Mon Sep 17 00:00:00 2001 From: Daniel Eades Date: Sun, 12 Jul 2026 12:25:42 +0100 Subject: [PATCH] Derive Default for structs when all field defaults are intrinsic When a struct has no whole-type default value and every property's default is Default::default(), the generated manual 'impl Default' is exactly what '#[derive(Default)]' produces, and trips clippy's warn-by-default 'derivable_impls' lint in consuming code (~50 warnings on the github.json test fixture alone). Add 'Default' to the derive set in that case instead of emitting the manual impl. Structs with a whole-type default value or any custom field default still get a hand-written impl, and builder-module Default impls are unchanged. --- cargo-typify/tests/outputs/attr.rs | 10 +- cargo-typify/tests/outputs/builder.rs | 10 +- .../tests/outputs/custom_btree_map.rs | 10 +- cargo-typify/tests/outputs/derive.rs | 10 +- cargo-typify/tests/outputs/multi_derive.rs | 16 +- cargo-typify/tests/outputs/no-builder.rs | 10 +- typify-impl/src/type_entry.rs | 17 +- typify-impl/tests/github.out | 641 ++---------------- typify-impl/tests/vega.out | 366 +--------- typify/tests/schemas/extraneous-enum.rs | 9 +- typify/tests/schemas/merged-schemas.rs | 80 +-- typify/tests/schemas/noisy-types.rs | 9 +- typify/tests/schemas/reflexive.rs | 10 +- typify/tests/schemas/rust-collisions.rs | 27 +- typify/tests/schemas/simple-types.rs | 9 +- typify/tests/schemas/types-with-defaults.rs | 9 +- .../schemas/various-enums-json-schema.rs | 11 +- typify/tests/schemas/various-enums.rs | 9 +- typify/tests/schemas/x-rust-type.rs | 10 +- 19 files changed, 122 insertions(+), 1151 deletions(-) diff --git a/cargo-typify/tests/outputs/attr.rs b/cargo-typify/tests/outputs/attr.rs index bae2d959..f61ba2b3 100644 --- a/cargo-typify/tests/outputs/attr.rs +++ b/cargo-typify/tests/outputs/attr.rs @@ -174,18 +174,10 @@ pub struct Veggie { #[doc = r" ```"] #[doc = r" "] #[extra_attr] -#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)] +#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug, Default)] pub struct Veggies { #[serde(default, skip_serializing_if = "::std::vec::Vec::is_empty")] pub fruits: ::std::vec::Vec<::std::string::String>, #[serde(default, skip_serializing_if = "::std::vec::Vec::is_empty")] pub vegetables: ::std::vec::Vec, } -impl ::std::default::Default for Veggies { - fn default() -> Self { - Self { - fruits: Default::default(), - vegetables: Default::default(), - } - } -} diff --git a/cargo-typify/tests/outputs/builder.rs b/cargo-typify/tests/outputs/builder.rs index d3bdd8e0..c6b8f541 100644 --- a/cargo-typify/tests/outputs/builder.rs +++ b/cargo-typify/tests/outputs/builder.rs @@ -175,21 +175,13 @@ impl Veggie { #[doc = "}"] #[doc = r" ```"] #[doc = r" "] -#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)] +#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug, Default)] pub struct Veggies { #[serde(default, skip_serializing_if = "::std::vec::Vec::is_empty")] pub fruits: ::std::vec::Vec<::std::string::String>, #[serde(default, skip_serializing_if = "::std::vec::Vec::is_empty")] pub vegetables: ::std::vec::Vec, } -impl ::std::default::Default for Veggies { - fn default() -> Self { - Self { - fruits: Default::default(), - vegetables: Default::default(), - } - } -} impl Veggies { pub fn builder() -> builder::Veggies { Default::default() diff --git a/cargo-typify/tests/outputs/custom_btree_map.rs b/cargo-typify/tests/outputs/custom_btree_map.rs index 27214973..efd1cdaf 100644 --- a/cargo-typify/tests/outputs/custom_btree_map.rs +++ b/cargo-typify/tests/outputs/custom_btree_map.rs @@ -176,21 +176,13 @@ impl Veggie { #[doc = "}"] #[doc = r" ```"] #[doc = r" "] -#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)] +#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug, Default)] pub struct Veggies { #[serde(default, skip_serializing_if = "::std::vec::Vec::is_empty")] pub fruits: ::std::vec::Vec<::std::string::String>, #[serde(default, skip_serializing_if = "::std::vec::Vec::is_empty")] pub vegetables: ::std::vec::Vec, } -impl ::std::default::Default for Veggies { - fn default() -> Self { - Self { - fruits: Default::default(), - vegetables: Default::default(), - } - } -} impl Veggies { pub fn builder() -> builder::Veggies { Default::default() diff --git a/cargo-typify/tests/outputs/derive.rs b/cargo-typify/tests/outputs/derive.rs index d66ce803..5fb3b4f0 100644 --- a/cargo-typify/tests/outputs/derive.rs +++ b/cargo-typify/tests/outputs/derive.rs @@ -170,18 +170,10 @@ pub struct Veggie { #[doc = "}"] #[doc = r" ```"] #[doc = r" "] -#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug, ExtraDerive)] +#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug, Default, ExtraDerive)] pub struct Veggies { #[serde(default, skip_serializing_if = "::std::vec::Vec::is_empty")] pub fruits: ::std::vec::Vec<::std::string::String>, #[serde(default, skip_serializing_if = "::std::vec::Vec::is_empty")] pub vegetables: ::std::vec::Vec, } -impl ::std::default::Default for Veggies { - fn default() -> Self { - Self { - fruits: Default::default(), - vegetables: Default::default(), - } - } -} diff --git a/cargo-typify/tests/outputs/multi_derive.rs b/cargo-typify/tests/outputs/multi_derive.rs index 4f259a28..fae5f058 100644 --- a/cargo-typify/tests/outputs/multi_derive.rs +++ b/cargo-typify/tests/outputs/multi_derive.rs @@ -177,7 +177,13 @@ pub struct Veggie { #[doc = r" ```"] #[doc = r" "] #[derive( - :: serde :: Deserialize, :: serde :: Serialize, AnotherDerive, Clone, Debug, ExtraDerive, + :: serde :: Deserialize, + :: serde :: Serialize, + AnotherDerive, + Clone, + Debug, + Default, + ExtraDerive, )] pub struct Veggies { #[serde(default, skip_serializing_if = "::std::vec::Vec::is_empty")] @@ -185,11 +191,3 @@ pub struct Veggies { #[serde(default, skip_serializing_if = "::std::vec::Vec::is_empty")] pub vegetables: ::std::vec::Vec, } -impl ::std::default::Default for Veggies { - fn default() -> Self { - Self { - fruits: Default::default(), - vegetables: Default::default(), - } - } -} diff --git a/cargo-typify/tests/outputs/no-builder.rs b/cargo-typify/tests/outputs/no-builder.rs index 16c8ae1e..5facd8bc 100644 --- a/cargo-typify/tests/outputs/no-builder.rs +++ b/cargo-typify/tests/outputs/no-builder.rs @@ -170,18 +170,10 @@ pub struct Veggie { #[doc = "}"] #[doc = r" ```"] #[doc = r" "] -#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)] +#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug, Default)] pub struct Veggies { #[serde(default, skip_serializing_if = "::std::vec::Vec::is_empty")] pub fruits: ::std::vec::Vec<::std::string::String>, #[serde(default, skip_serializing_if = "::std::vec::Vec::is_empty")] pub vegetables: ::std::vec::Vec, } -impl ::std::default::Default for Veggies { - fn default() -> Self { - Self { - fruits: Default::default(), - vegetables: Default::default(), - } - } -} diff --git a/typify-impl/src/type_entry.rs b/typify-impl/src/type_entry.rs index 5f3b4897..458c1c07 100644 --- a/typify-impl/src/type_entry.rs +++ b/typify-impl/src/type_entry.rs @@ -1093,7 +1093,7 @@ impl TypeEntry { type_space: &TypeSpace, output: &mut OutputSpace, struct_details: &TypeEntryStruct, - derive_set: BTreeSet<&str>, + mut derive_set: BTreeSet<&str>, ) { enum PropDefault { None(String), @@ -1175,6 +1175,19 @@ impl TypeEntry { }); }); + // If there's no whole-type default value and every property's default + // is the intrinsic `Default::default()`, the hand-written `impl Default` + // would be exactly what `#[derive(Default)]` produces (and would trip + // clippy's `derivable_impls` lint downstream). In that case we derive + // `Default` rather than emitting the manual impl below. + let derive_default = default.is_none() + && prop_default + .iter() + .all(|pd| matches!(pd, PropDefault::Default(_))); + if derive_default { + derive_set.insert("Default"); + } + let derives = strings_to_derives( derive_set, &self.extra_derives, @@ -1215,6 +1228,8 @@ impl TypeEntry { } }, ); + } else if derive_default { + // Handled above via `#[derive(Default)]`. } else if let Some(prop_default) = prop_default .iter() .map(|pd| match pd { diff --git a/typify-impl/tests/github.out b/typify-impl/tests/github.out index ad940c08..e2647941 100644 --- a/typify-impl/tests/github.out +++ b/typify-impl/tests/github.out @@ -154,7 +154,7 @@ pub struct AlertInstance { #[doc = "}"] #[doc = r" ```"] #[doc = r" "] -#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)] +#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug, Default)] #[serde(deny_unknown_fields)] pub struct AlertInstanceLocation { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] @@ -168,17 +168,6 @@ pub struct AlertInstanceLocation { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] pub start_line: ::std::option::Option, } -impl ::std::default::Default for AlertInstanceLocation { - fn default() -> Self { - Self { - end_column: Default::default(), - end_line: Default::default(), - path: Default::default(), - start_column: Default::default(), - start_line: Default::default(), - } - } -} #[doc = "`AlertInstanceMessage`"] #[doc = r""] #[doc = r"
JSON schema"] @@ -195,19 +184,12 @@ impl ::std::default::Default for AlertInstanceLocation { #[doc = "}"] #[doc = r" ```"] #[doc = r"
"] -#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)] +#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug, Default)] #[serde(deny_unknown_fields)] pub struct AlertInstanceMessage { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] pub text: ::std::option::Option<::std::string::String>, } -impl ::std::default::Default for AlertInstanceMessage { - fn default() -> Self { - Self { - text: Default::default(), - } - } -} #[doc = "State of a code scanning alert."] #[doc = r""] #[doc = r"
JSON schema"] @@ -1192,7 +1174,7 @@ impl ::std::convert::TryFrom<::std::string::String> for AppEventsItem { #[doc = "}"] #[doc = r" ```"] #[doc = r"
"] -#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)] +#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug, Default)] #[serde(deny_unknown_fields)] pub struct AppPermissions { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] @@ -1266,46 +1248,6 @@ pub struct AppPermissions { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] pub workflows: ::std::option::Option, } -impl ::std::default::Default for AppPermissions { - fn default() -> Self { - Self { - actions: Default::default(), - administration: Default::default(), - checks: Default::default(), - content_references: Default::default(), - contents: Default::default(), - deployments: Default::default(), - discussions: Default::default(), - emails: Default::default(), - environments: Default::default(), - issues: Default::default(), - members: Default::default(), - metadata: Default::default(), - organization_administration: Default::default(), - organization_hooks: Default::default(), - organization_packages: Default::default(), - organization_plan: Default::default(), - organization_projects: Default::default(), - organization_secrets: Default::default(), - organization_self_hosted_runners: Default::default(), - organization_user_blocking: Default::default(), - packages: Default::default(), - pages: Default::default(), - pull_requests: Default::default(), - repository_hooks: Default::default(), - repository_projects: Default::default(), - secret_scanning_alerts: Default::default(), - secrets: Default::default(), - security_events: Default::default(), - security_scanning_alert: Default::default(), - single_file: Default::default(), - statuses: Default::default(), - team_discussions: Default::default(), - vulnerability_alerts: Default::default(), - workflows: Default::default(), - } - } -} #[doc = "`AppPermissionsActions`"] #[doc = r""] #[doc = r"
JSON schema"] @@ -4343,7 +4285,7 @@ impl ::std::convert::TryFrom<::std::string::String> for BranchProtectionRuleEdit #[doc = "}"] #[doc = r" ```"] #[doc = r"
"] -#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)] +#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug, Default)] #[serde(deny_unknown_fields)] pub struct BranchProtectionRuleEditedChanges { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] @@ -4353,14 +4295,6 @@ pub struct BranchProtectionRuleEditedChanges { pub authorized_actors_only: ::std::option::Option, } -impl ::std::default::Default for BranchProtectionRuleEditedChanges { - fn default() -> Self { - Self { - authorized_actor_names: Default::default(), - authorized_actors_only: Default::default(), - } - } -} #[doc = "`BranchProtectionRuleEditedChangesAuthorizedActorNames`"] #[doc = r""] #[doc = r"
JSON schema"] @@ -6091,20 +6025,13 @@ impl ::std::convert::TryFrom<::std::string::String> for CheckRunCompletedCheckRu #[doc = "}"] #[doc = r" ```"] #[doc = r"
"] -#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)] +#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug, Default)] #[serde(deny_unknown_fields)] pub struct CheckRunCompletedRequestedAction { #[doc = "The integrator reference of the action requested by the user."] #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] pub identifier: ::std::option::Option<::std::string::String>, } -impl ::std::default::Default for CheckRunCompletedRequestedAction { - fn default() -> Self { - Self { - identifier: Default::default(), - } - } -} #[doc = "`CheckRunCreated`"] #[doc = r""] #[doc = r"
JSON schema"] @@ -7263,20 +7190,13 @@ impl ::std::convert::TryFrom<::std::string::String> for CheckRunCreatedCheckRunS #[doc = "}"] #[doc = r" ```"] #[doc = r"
"] -#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)] +#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug, Default)] #[serde(deny_unknown_fields)] pub struct CheckRunCreatedRequestedAction { #[doc = "The integrator reference of the action requested by the user."] #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] pub identifier: ::std::option::Option<::std::string::String>, } -impl ::std::default::Default for CheckRunCreatedRequestedAction { - fn default() -> Self { - Self { - identifier: Default::default(), - } - } -} #[doc = "A deployment to a repository environment. This will only be populated if the check run was created by a GitHub Actions workflow job that references an environment."] #[doc = r""] #[doc = r"
JSON schema"] @@ -8720,20 +8640,13 @@ impl ::std::convert::TryFrom<::std::string::String> for CheckRunRequestedActionC #[doc = "}"] #[doc = r" ```"] #[doc = r"
"] -#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)] +#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug, Default)] #[serde(deny_unknown_fields)] pub struct CheckRunRequestedActionRequestedAction { #[doc = "The integrator reference of the action requested by the user."] #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] pub identifier: ::std::option::Option<::std::string::String>, } -impl ::std::default::Default for CheckRunRequestedActionRequestedAction { - fn default() -> Self { - Self { - identifier: Default::default(), - } - } -} #[doc = "`CheckRunRerequested`"] #[doc = r""] #[doc = r"
JSON schema"] @@ -9846,20 +9759,13 @@ impl ::std::convert::TryFrom<::std::string::String> for CheckRunRerequestedCheck #[doc = "}"] #[doc = r" ```"] #[doc = r"
"] -#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)] +#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug, Default)] #[serde(deny_unknown_fields)] pub struct CheckRunRerequestedRequestedAction { #[doc = "The integrator reference of the action requested by the user."] #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] pub identifier: ::std::option::Option<::std::string::String>, } -impl ::std::default::Default for CheckRunRerequestedRequestedAction { - fn default() -> Self { - Self { - identifier: Default::default(), - } - } -} #[doc = "`CheckSuiteCompleted`"] #[doc = r""] #[doc = r"
JSON schema"] @@ -12892,7 +12798,7 @@ pub struct CodeScanningAlertClosedByUserAlertInstancesItem { #[doc = "}"] #[doc = r" ```"] #[doc = r"
"] -#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)] +#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug, Default)] #[serde(deny_unknown_fields)] pub struct CodeScanningAlertClosedByUserAlertInstancesItemLocation { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] @@ -12906,17 +12812,6 @@ pub struct CodeScanningAlertClosedByUserAlertInstancesItemLocation { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] pub start_line: ::std::option::Option, } -impl ::std::default::Default for CodeScanningAlertClosedByUserAlertInstancesItemLocation { - fn default() -> Self { - Self { - end_column: Default::default(), - end_line: Default::default(), - path: Default::default(), - start_column: Default::default(), - start_line: Default::default(), - } - } -} #[doc = "`CodeScanningAlertClosedByUserAlertInstancesItemMessage`"] #[doc = r""] #[doc = r"
JSON schema"] @@ -12933,19 +12828,12 @@ impl ::std::default::Default for CodeScanningAlertClosedByUserAlertInstancesItem #[doc = "}"] #[doc = r" ```"] #[doc = r"
"] -#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)] +#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug, Default)] #[serde(deny_unknown_fields)] pub struct CodeScanningAlertClosedByUserAlertInstancesItemMessage { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] pub text: ::std::option::Option<::std::string::String>, } -impl ::std::default::Default for CodeScanningAlertClosedByUserAlertInstancesItemMessage { - fn default() -> Self { - Self { - text: Default::default(), - } - } -} #[doc = "`CodeScanningAlertClosedByUserAlertInstancesItemState`"] #[doc = r""] #[doc = r"
JSON schema"] @@ -13807,7 +13695,7 @@ pub struct CodeScanningAlertCreatedAlertInstancesItem { #[doc = "}"] #[doc = r" ```"] #[doc = r"
"] -#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)] +#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug, Default)] #[serde(deny_unknown_fields)] pub struct CodeScanningAlertCreatedAlertInstancesItemLocation { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] @@ -13821,17 +13709,6 @@ pub struct CodeScanningAlertCreatedAlertInstancesItemLocation { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] pub start_line: ::std::option::Option, } -impl ::std::default::Default for CodeScanningAlertCreatedAlertInstancesItemLocation { - fn default() -> Self { - Self { - end_column: Default::default(), - end_line: Default::default(), - path: Default::default(), - start_column: Default::default(), - start_line: Default::default(), - } - } -} #[doc = "`CodeScanningAlertCreatedAlertInstancesItemMessage`"] #[doc = r""] #[doc = r"
JSON schema"] @@ -13848,19 +13725,12 @@ impl ::std::default::Default for CodeScanningAlertCreatedAlertInstancesItemLocat #[doc = "}"] #[doc = r" ```"] #[doc = r"
"] -#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)] +#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug, Default)] #[serde(deny_unknown_fields)] pub struct CodeScanningAlertCreatedAlertInstancesItemMessage { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] pub text: ::std::option::Option<::std::string::String>, } -impl ::std::default::Default for CodeScanningAlertCreatedAlertInstancesItemMessage { - fn default() -> Self { - Self { - text: Default::default(), - } - } -} #[doc = "`CodeScanningAlertCreatedAlertInstancesItemState`"] #[doc = r""] #[doc = r"
JSON schema"] @@ -14914,7 +14784,7 @@ pub struct CodeScanningAlertFixedAlertInstancesItem { #[doc = "}"] #[doc = r" ```"] #[doc = r"
"] -#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)] +#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug, Default)] #[serde(deny_unknown_fields)] pub struct CodeScanningAlertFixedAlertInstancesItemLocation { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] @@ -14928,17 +14798,6 @@ pub struct CodeScanningAlertFixedAlertInstancesItemLocation { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] pub start_line: ::std::option::Option, } -impl ::std::default::Default for CodeScanningAlertFixedAlertInstancesItemLocation { - fn default() -> Self { - Self { - end_column: Default::default(), - end_line: Default::default(), - path: Default::default(), - start_column: Default::default(), - start_line: Default::default(), - } - } -} #[doc = "`CodeScanningAlertFixedAlertInstancesItemMessage`"] #[doc = r""] #[doc = r"
JSON schema"] @@ -14955,19 +14814,12 @@ impl ::std::default::Default for CodeScanningAlertFixedAlertInstancesItemLocatio #[doc = "}"] #[doc = r" ```"] #[doc = r"
"] -#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)] +#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug, Default)] #[serde(deny_unknown_fields)] pub struct CodeScanningAlertFixedAlertInstancesItemMessage { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] pub text: ::std::option::Option<::std::string::String>, } -impl ::std::default::Default for CodeScanningAlertFixedAlertInstancesItemMessage { - fn default() -> Self { - Self { - text: Default::default(), - } - } -} #[doc = "`CodeScanningAlertFixedAlertInstancesItemState`"] #[doc = r""] #[doc = r"
JSON schema"] @@ -15826,7 +15678,7 @@ pub struct CodeScanningAlertReopenedAlertInstancesItem { #[doc = "}"] #[doc = r" ```"] #[doc = r"
"] -#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)] +#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug, Default)] #[serde(deny_unknown_fields)] pub struct CodeScanningAlertReopenedAlertInstancesItemLocation { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] @@ -15840,17 +15692,6 @@ pub struct CodeScanningAlertReopenedAlertInstancesItemLocation { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] pub start_line: ::std::option::Option, } -impl ::std::default::Default for CodeScanningAlertReopenedAlertInstancesItemLocation { - fn default() -> Self { - Self { - end_column: Default::default(), - end_line: Default::default(), - path: Default::default(), - start_column: Default::default(), - start_line: Default::default(), - } - } -} #[doc = "`CodeScanningAlertReopenedAlertInstancesItemMessage`"] #[doc = r""] #[doc = r"
JSON schema"] @@ -15867,19 +15708,12 @@ impl ::std::default::Default for CodeScanningAlertReopenedAlertInstancesItemLoca #[doc = "}"] #[doc = r" ```"] #[doc = r"
"] -#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)] +#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug, Default)] #[serde(deny_unknown_fields)] pub struct CodeScanningAlertReopenedAlertInstancesItemMessage { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] pub text: ::std::option::Option<::std::string::String>, } -impl ::std::default::Default for CodeScanningAlertReopenedAlertInstancesItemMessage { - fn default() -> Self { - Self { - text: Default::default(), - } - } -} #[doc = "`CodeScanningAlertReopenedAlertInstancesItemState`"] #[doc = r""] #[doc = r"
JSON schema"] @@ -16708,7 +16542,7 @@ pub struct CodeScanningAlertReopenedByUserAlertInstancesItem { #[doc = "}"] #[doc = r" ```"] #[doc = r"
"] -#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)] +#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug, Default)] #[serde(deny_unknown_fields)] pub struct CodeScanningAlertReopenedByUserAlertInstancesItemLocation { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] @@ -16722,17 +16556,6 @@ pub struct CodeScanningAlertReopenedByUserAlertInstancesItemLocation { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] pub start_line: ::std::option::Option, } -impl ::std::default::Default for CodeScanningAlertReopenedByUserAlertInstancesItemLocation { - fn default() -> Self { - Self { - end_column: Default::default(), - end_line: Default::default(), - path: Default::default(), - start_column: Default::default(), - start_line: Default::default(), - } - } -} #[doc = "`CodeScanningAlertReopenedByUserAlertInstancesItemMessage`"] #[doc = r""] #[doc = r"
JSON schema"] @@ -16749,19 +16572,12 @@ impl ::std::default::Default for CodeScanningAlertReopenedByUserAlertInstancesIt #[doc = "}"] #[doc = r" ```"] #[doc = r"
"] -#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)] +#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug, Default)] #[serde(deny_unknown_fields)] pub struct CodeScanningAlertReopenedByUserAlertInstancesItemMessage { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] pub text: ::std::option::Option<::std::string::String>, } -impl ::std::default::Default for CodeScanningAlertReopenedByUserAlertInstancesItemMessage { - fn default() -> Self { - Self { - text: Default::default(), - } - } -} #[doc = "`CodeScanningAlertReopenedByUserAlertInstancesItemState`"] #[doc = r""] #[doc = r"
JSON schema"] @@ -18837,14 +18653,9 @@ pub struct DeploymentCreatedDeployment { #[doc = "}"] #[doc = r" ```"] #[doc = r"
"] -#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)] +#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug, Default)] #[serde(deny_unknown_fields)] pub struct DeploymentCreatedDeploymentPayload {} -impl ::std::default::Default for DeploymentCreatedDeploymentPayload { - fn default() -> Self { - Self {} - } -} #[doc = "`DeploymentEvent`"] #[doc = r""] #[doc = r"
JSON schema"] @@ -19270,14 +19081,9 @@ pub struct DeploymentStatusCreatedDeployment { #[doc = "}"] #[doc = r" ```"] #[doc = r"
"] -#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)] +#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug, Default)] #[serde(deny_unknown_fields)] pub struct DeploymentStatusCreatedDeploymentPayload {} -impl ::std::default::Default for DeploymentStatusCreatedDeploymentPayload { - fn default() -> Self { - Self {} - } -} #[doc = "The [deployment status](https://docs.github.com/en/rest/reference/repos#list-deployment-statuses)."] #[doc = r""] #[doc = r"
JSON schema"] @@ -22308,7 +22114,7 @@ impl ::std::convert::TryFrom<::std::string::String> for DiscussionEditedAction { #[doc = "}"] #[doc = r" ```"] #[doc = r"
"] -#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)] +#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug, Default)] #[serde(deny_unknown_fields)] pub struct DiscussionEditedChanges { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] @@ -22316,14 +22122,6 @@ pub struct DiscussionEditedChanges { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] pub title: ::std::option::Option, } -impl ::std::default::Default for DiscussionEditedChanges { - fn default() -> Self { - Self { - body: Default::default(), - title: Default::default(), - } - } -} #[doc = "`DiscussionEditedChangesBody`"] #[doc = r""] #[doc = r"
JSON schema"] @@ -27445,7 +27243,7 @@ pub struct InstallationNewPermissionsAcceptedRepositoriesItem { #[doc = "}"] #[doc = r" ```"] #[doc = r"
"] -#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)] +#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug, Default)] #[serde(deny_unknown_fields)] pub struct InstallationPermissions { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] @@ -27523,47 +27321,6 @@ pub struct InstallationPermissions { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] pub workflows: ::std::option::Option, } -impl ::std::default::Default for InstallationPermissions { - fn default() -> Self { - Self { - actions: Default::default(), - administration: Default::default(), - checks: Default::default(), - content_references: Default::default(), - contents: Default::default(), - deployments: Default::default(), - discussions: Default::default(), - emails: Default::default(), - environments: Default::default(), - issues: Default::default(), - members: Default::default(), - metadata: Default::default(), - organization_administration: Default::default(), - organization_events: Default::default(), - organization_hooks: Default::default(), - organization_packages: Default::default(), - organization_plan: Default::default(), - organization_projects: Default::default(), - organization_secrets: Default::default(), - organization_self_hosted_runners: Default::default(), - organization_user_blocking: Default::default(), - packages: Default::default(), - pages: Default::default(), - pull_requests: Default::default(), - repository_hooks: Default::default(), - repository_projects: Default::default(), - secret_scanning_alerts: Default::default(), - secrets: Default::default(), - security_events: Default::default(), - security_scanning_alert: Default::default(), - single_file: Default::default(), - statuses: Default::default(), - team_discussions: Default::default(), - vulnerability_alerts: Default::default(), - workflows: Default::default(), - } - } -} #[doc = "`InstallationPermissionsActions`"] #[doc = r""] #[doc = r"
JSON schema"] @@ -30090,7 +29847,7 @@ pub struct InstallationRepositoriesAddedRepositoriesAddedItem { #[doc = "}"] #[doc = r" ```"] #[doc = r"
"] -#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)] +#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug, Default)] #[serde(deny_unknown_fields)] pub struct InstallationRepositoriesAddedRepositoriesRemovedItem { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] @@ -30107,17 +29864,6 @@ pub struct InstallationRepositoriesAddedRepositoriesRemovedItem { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] pub private: ::std::option::Option, } -impl ::std::default::Default for InstallationRepositoriesAddedRepositoriesRemovedItem { - fn default() -> Self { - Self { - full_name: Default::default(), - id: Default::default(), - name: Default::default(), - node_id: Default::default(), - private: Default::default(), - } - } -} #[doc = "Describe whether all repositories have been selected or there's a selection involved"] #[doc = r""] #[doc = r"
JSON schema"] @@ -31478,7 +31224,7 @@ impl ::std::convert::TryFrom<::std::string::String> for InstallationSuspendInsta #[doc = "}"] #[doc = r" ```"] #[doc = r"
"] -#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)] +#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug, Default)] #[serde(deny_unknown_fields)] pub struct InstallationSuspendInstallationPermissions { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] @@ -31572,47 +31318,6 @@ pub struct InstallationSuspendInstallationPermissions { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] pub workflows: ::std::option::Option, } -impl ::std::default::Default for InstallationSuspendInstallationPermissions { - fn default() -> Self { - Self { - actions: Default::default(), - administration: Default::default(), - checks: Default::default(), - content_references: Default::default(), - contents: Default::default(), - deployments: Default::default(), - discussions: Default::default(), - emails: Default::default(), - environments: Default::default(), - issues: Default::default(), - members: Default::default(), - metadata: Default::default(), - organization_administration: Default::default(), - organization_events: Default::default(), - organization_hooks: Default::default(), - organization_packages: Default::default(), - organization_plan: Default::default(), - organization_projects: Default::default(), - organization_secrets: Default::default(), - organization_self_hosted_runners: Default::default(), - organization_user_blocking: Default::default(), - packages: Default::default(), - pages: Default::default(), - pull_requests: Default::default(), - repository_hooks: Default::default(), - repository_projects: Default::default(), - secret_scanning_alerts: Default::default(), - secrets: Default::default(), - security_events: Default::default(), - security_scanning_alert: Default::default(), - single_file: Default::default(), - statuses: Default::default(), - team_discussions: Default::default(), - vulnerability_alerts: Default::default(), - workflows: Default::default(), - } - } -} #[doc = "`InstallationSuspendInstallationPermissionsActions`"] #[doc = r""] #[doc = r"
JSON schema"] @@ -35309,7 +35014,7 @@ impl ::std::convert::TryFrom<::std::string::String> #[doc = "}"] #[doc = r" ```"] #[doc = r"
"] -#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)] +#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug, Default)] #[serde(deny_unknown_fields)] pub struct InstallationUnsuspendInstallationPermissions { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] @@ -35405,47 +35110,6 @@ pub struct InstallationUnsuspendInstallationPermissions { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] pub workflows: ::std::option::Option, } -impl ::std::default::Default for InstallationUnsuspendInstallationPermissions { - fn default() -> Self { - Self { - actions: Default::default(), - administration: Default::default(), - checks: Default::default(), - content_references: Default::default(), - contents: Default::default(), - deployments: Default::default(), - discussions: Default::default(), - emails: Default::default(), - environments: Default::default(), - issues: Default::default(), - members: Default::default(), - metadata: Default::default(), - organization_administration: Default::default(), - organization_events: Default::default(), - organization_hooks: Default::default(), - organization_packages: Default::default(), - organization_plan: Default::default(), - organization_projects: Default::default(), - organization_secrets: Default::default(), - organization_self_hosted_runners: Default::default(), - organization_user_blocking: Default::default(), - packages: Default::default(), - pages: Default::default(), - pull_requests: Default::default(), - repository_hooks: Default::default(), - repository_projects: Default::default(), - secret_scanning_alerts: Default::default(), - secrets: Default::default(), - security_events: Default::default(), - security_scanning_alert: Default::default(), - single_file: Default::default(), - statuses: Default::default(), - team_discussions: Default::default(), - vulnerability_alerts: Default::default(), - workflows: Default::default(), - } - } -} #[doc = "`InstallationUnsuspendInstallationPermissionsActions`"] #[doc = r""] #[doc = r"
JSON schema"] @@ -39974,19 +39638,12 @@ impl ::std::convert::TryFrom<::std::string::String> for IssueCommentEditedAction #[doc = "}"] #[doc = r" ```"] #[doc = r"
"] -#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)] +#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug, Default)] #[serde(deny_unknown_fields)] pub struct IssueCommentEditedChanges { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] pub body: ::std::option::Option, } -impl ::std::default::Default for IssueCommentEditedChanges { - fn default() -> Self { - Self { - body: Default::default(), - } - } -} #[doc = "`IssueCommentEditedChangesBody`"] #[doc = r""] #[doc = r"
JSON schema"] @@ -40504,7 +40161,7 @@ impl ::std::convert::From for IssueCommentEvent { #[doc = "}"] #[doc = r" ```"] #[doc = r"
"] -#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)] +#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug, Default)] #[serde(deny_unknown_fields)] pub struct IssuePullRequest { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] @@ -40516,16 +40173,6 @@ pub struct IssuePullRequest { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] pub url: ::std::option::Option<::std::string::String>, } -impl ::std::default::Default for IssuePullRequest { - fn default() -> Self { - Self { - diff_url: Default::default(), - html_url: Default::default(), - patch_url: Default::default(), - url: Default::default(), - } - } -} #[doc = "State of the issue; either 'open' or 'closed'"] #[doc = r""] #[doc = r"
JSON schema"] @@ -41037,7 +40684,7 @@ impl ::std::convert::TryFrom<::std::string::String> for IssuesClosedIssueActiveL #[doc = "}"] #[doc = r" ```"] #[doc = r"
"] -#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)] +#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug, Default)] #[serde(deny_unknown_fields)] pub struct IssuesClosedIssuePullRequest { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] @@ -41049,16 +40696,6 @@ pub struct IssuesClosedIssuePullRequest { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] pub url: ::std::option::Option<::std::string::String>, } -impl ::std::default::Default for IssuesClosedIssuePullRequest { - fn default() -> Self { - Self { - diff_url: Default::default(), - html_url: Default::default(), - patch_url: Default::default(), - url: Default::default(), - } - } -} #[doc = "`IssuesClosedIssueState`"] #[doc = r""] #[doc = r"
JSON schema"] @@ -41534,7 +41171,7 @@ impl ::std::convert::TryFrom<::std::string::String> for IssuesDemilestonedIssueA #[doc = "}"] #[doc = r" ```"] #[doc = r"
"] -#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)] +#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug, Default)] #[serde(deny_unknown_fields)] pub struct IssuesDemilestonedIssuePullRequest { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] @@ -41546,16 +41183,6 @@ pub struct IssuesDemilestonedIssuePullRequest { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] pub url: ::std::option::Option<::std::string::String>, } -impl ::std::default::Default for IssuesDemilestonedIssuePullRequest { - fn default() -> Self { - Self { - diff_url: Default::default(), - html_url: Default::default(), - patch_url: Default::default(), - url: Default::default(), - } - } -} #[doc = "State of the issue; either 'open' or 'closed'"] #[doc = r""] #[doc = r"
JSON schema"] @@ -41814,7 +41441,7 @@ impl ::std::convert::TryFrom<::std::string::String> for IssuesEditedAction { #[doc = "}"] #[doc = r" ```"] #[doc = r"
"] -#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)] +#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug, Default)] #[serde(deny_unknown_fields)] pub struct IssuesEditedChanges { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] @@ -41822,14 +41449,6 @@ pub struct IssuesEditedChanges { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] pub title: ::std::option::Option, } -impl ::std::default::Default for IssuesEditedChanges { - fn default() -> Self { - Self { - body: Default::default(), - title: Default::default(), - } - } -} #[doc = "`IssuesEditedChangesBody`"] #[doc = r""] #[doc = r"
JSON schema"] @@ -42492,7 +42111,7 @@ impl ::std::convert::TryFrom<::std::string::String> for IssuesLockedIssueActiveL #[doc = "}"] #[doc = r" ```"] #[doc = r"
"] -#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)] +#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug, Default)] #[serde(deny_unknown_fields)] pub struct IssuesLockedIssuePullRequest { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] @@ -42504,16 +42123,6 @@ pub struct IssuesLockedIssuePullRequest { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] pub url: ::std::option::Option<::std::string::String>, } -impl ::std::default::Default for IssuesLockedIssuePullRequest { - fn default() -> Self { - Self { - diff_url: Default::default(), - html_url: Default::default(), - patch_url: Default::default(), - url: Default::default(), - } - } -} #[doc = "State of the issue; either 'open' or 'closed'"] #[doc = r""] #[doc = r"
JSON schema"] @@ -43080,7 +42689,7 @@ impl ::std::convert::TryFrom<::std::string::String> for IssuesMilestonedIssueMil #[doc = "}"] #[doc = r" ```"] #[doc = r"
"] -#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)] +#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug, Default)] #[serde(deny_unknown_fields)] pub struct IssuesMilestonedIssuePullRequest { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] @@ -43092,16 +42701,6 @@ pub struct IssuesMilestonedIssuePullRequest { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] pub url: ::std::option::Option<::std::string::String>, } -impl ::std::default::Default for IssuesMilestonedIssuePullRequest { - fn default() -> Self { - Self { - diff_url: Default::default(), - html_url: Default::default(), - patch_url: Default::default(), - url: Default::default(), - } - } -} #[doc = "State of the issue; either 'open' or 'closed'"] #[doc = r""] #[doc = r"
JSON schema"] @@ -43524,7 +43123,7 @@ impl ::std::convert::TryFrom<::std::string::String> for IssuesOpenedIssueActiveL #[doc = "}"] #[doc = r" ```"] #[doc = r"
"] -#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)] +#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug, Default)] #[serde(deny_unknown_fields)] pub struct IssuesOpenedIssuePullRequest { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] @@ -43536,16 +43135,6 @@ pub struct IssuesOpenedIssuePullRequest { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] pub url: ::std::option::Option<::std::string::String>, } -impl ::std::default::Default for IssuesOpenedIssuePullRequest { - fn default() -> Self { - Self { - diff_url: Default::default(), - html_url: Default::default(), - patch_url: Default::default(), - url: Default::default(), - } - } -} #[doc = "`IssuesOpenedIssueState`"] #[doc = r""] #[doc = r"
JSON schema"] @@ -44020,7 +43609,7 @@ impl ::std::convert::TryFrom<::std::string::String> for IssuesReopenedIssueActiv #[doc = "}"] #[doc = r" ```"] #[doc = r"
"] -#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)] +#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug, Default)] #[serde(deny_unknown_fields)] pub struct IssuesReopenedIssuePullRequest { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] @@ -44032,16 +43621,6 @@ pub struct IssuesReopenedIssuePullRequest { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] pub url: ::std::option::Option<::std::string::String>, } -impl ::std::default::Default for IssuesReopenedIssuePullRequest { - fn default() -> Self { - Self { - diff_url: Default::default(), - html_url: Default::default(), - patch_url: Default::default(), - url: Default::default(), - } - } -} #[doc = "`IssuesReopenedIssueState`"] #[doc = r""] #[doc = r"
JSON schema"] @@ -44794,7 +44373,7 @@ impl<'de> ::serde::Deserialize<'de> for IssuesUnlockedIssueActiveLockReason { #[doc = "}"] #[doc = r" ```"] #[doc = r"
"] -#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)] +#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug, Default)] #[serde(deny_unknown_fields)] pub struct IssuesUnlockedIssuePullRequest { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] @@ -44806,16 +44385,6 @@ pub struct IssuesUnlockedIssuePullRequest { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] pub url: ::std::option::Option<::std::string::String>, } -impl ::std::default::Default for IssuesUnlockedIssuePullRequest { - fn default() -> Self { - Self { - diff_url: Default::default(), - html_url: Default::default(), - patch_url: Default::default(), - url: Default::default(), - } - } -} #[doc = "State of the issue; either 'open' or 'closed'"] #[doc = r""] #[doc = r"
JSON schema"] @@ -45506,7 +45075,7 @@ impl ::std::convert::TryFrom<::std::string::String> for LabelEditedAction { #[doc = "}"] #[doc = r" ```"] #[doc = r"
"] -#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)] +#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug, Default)] #[serde(deny_unknown_fields)] pub struct LabelEditedChanges { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] @@ -45516,15 +45085,6 @@ pub struct LabelEditedChanges { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] pub name: ::std::option::Option, } -impl ::std::default::Default for LabelEditedChanges { - fn default() -> Self { - Self { - color: Default::default(), - description: Default::default(), - name: Default::default(), - } - } -} #[doc = "`LabelEditedChangesColor`"] #[doc = r""] #[doc = r"
JSON schema"] @@ -48626,19 +48186,12 @@ impl ::std::convert::TryFrom<::std::string::String> for MemberAddedAction { #[doc = "}"] #[doc = r" ```"] #[doc = r"
"] -#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)] +#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug, Default)] #[serde(deny_unknown_fields)] pub struct MemberAddedChanges { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] pub permission: ::std::option::Option, } -impl ::std::default::Default for MemberAddedChanges { - fn default() -> Self { - Self { - permission: Default::default(), - } - } -} #[doc = "`MemberAddedChangesPermission`"] #[doc = r""] #[doc = r"
JSON schema"] @@ -50958,7 +50511,7 @@ impl ::std::convert::TryFrom<::std::string::String> for MilestoneEditedAction { #[doc = "}"] #[doc = r" ```"] #[doc = r"
"] -#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)] +#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug, Default)] #[serde(deny_unknown_fields)] pub struct MilestoneEditedChanges { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] @@ -50968,15 +50521,6 @@ pub struct MilestoneEditedChanges { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] pub title: ::std::option::Option, } -impl ::std::default::Default for MilestoneEditedChanges { - fn default() -> Self { - Self { - description: Default::default(), - due_on: Default::default(), - title: Default::default(), - } - } -} #[doc = "`MilestoneEditedChangesDescription`"] #[doc = r""] #[doc = r"
JSON schema"] @@ -57217,19 +56761,12 @@ impl ::std::convert::TryFrom<::std::string::String> for ProjectColumnEditedActio #[doc = "}"] #[doc = r" ```"] #[doc = r"
"] -#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)] +#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug, Default)] #[serde(deny_unknown_fields)] pub struct ProjectColumnEditedChanges { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] pub name: ::std::option::Option, } -impl ::std::default::Default for ProjectColumnEditedChanges { - fn default() -> Self { - Self { - name: Default::default(), - } - } -} #[doc = "`ProjectColumnEditedChangesName`"] #[doc = r""] #[doc = r"
JSON schema"] @@ -57832,7 +57369,7 @@ impl ::std::convert::TryFrom<::std::string::String> for ProjectEditedAction { #[doc = "}"] #[doc = r" ```"] #[doc = r"
"] -#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)] +#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug, Default)] #[serde(deny_unknown_fields)] pub struct ProjectEditedChanges { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] @@ -57840,14 +57377,6 @@ pub struct ProjectEditedChanges { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] pub name: ::std::option::Option, } -impl ::std::default::Default for ProjectEditedChanges { - fn default() -> Self { - Self { - body: Default::default(), - name: Default::default(), - } - } -} #[doc = "`ProjectEditedChangesBody`"] #[doc = r""] #[doc = r"
JSON schema"] @@ -60776,7 +60305,7 @@ impl ::std::convert::TryFrom<::std::string::String> for PullRequestEditedAction #[doc = "}"] #[doc = r" ```"] #[doc = r"
"] -#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)] +#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug, Default)] #[serde(deny_unknown_fields)] pub struct PullRequestEditedChanges { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] @@ -60784,14 +60313,6 @@ pub struct PullRequestEditedChanges { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] pub title: ::std::option::Option, } -impl ::std::default::Default for PullRequestEditedChanges { - fn default() -> Self { - Self { - body: Default::default(), - title: Default::default(), - } - } -} #[doc = "`PullRequestEditedChangesBody`"] #[doc = r""] #[doc = r"
JSON schema"] @@ -66029,19 +65550,12 @@ impl ::std::convert::TryFrom<::std::string::String> for PullRequestReviewComment #[doc = "}"] #[doc = r" ```"] #[doc = r"
"] -#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)] +#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug, Default)] #[serde(deny_unknown_fields)] pub struct PullRequestReviewCommentEditedChanges { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] pub body: ::std::option::Option, } -impl ::std::default::Default for PullRequestReviewCommentEditedChanges { - fn default() -> Self { - Self { - body: Default::default(), - } - } -} #[doc = "`PullRequestReviewCommentEditedChangesBody`"] #[doc = r""] #[doc = r"
JSON schema"] @@ -67582,19 +67096,12 @@ impl ::std::convert::TryFrom<::std::string::String> for PullRequestReviewEditedA #[doc = "}"] #[doc = r" ```"] #[doc = r"
"] -#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)] +#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug, Default)] #[serde(deny_unknown_fields)] pub struct PullRequestReviewEditedChanges { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] pub body: ::std::option::Option, } -impl ::std::default::Default for PullRequestReviewEditedChanges { - fn default() -> Self { - Self { - body: Default::default(), - } - } -} #[doc = "`PullRequestReviewEditedChangesBody`"] #[doc = r""] #[doc = r"
JSON schema"] @@ -70006,7 +69513,7 @@ impl ::std::convert::TryFrom<::std::string::String> for ReleaseEditedAction { #[doc = "}"] #[doc = r" ```"] #[doc = r"
"] -#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)] +#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug, Default)] #[serde(deny_unknown_fields)] pub struct ReleaseEditedChanges { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] @@ -70014,14 +69521,6 @@ pub struct ReleaseEditedChanges { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] pub name: ::std::option::Option, } -impl ::std::default::Default for ReleaseEditedChanges { - fn default() -> Self { - Self { - body: Default::default(), - name: Default::default(), - } - } -} #[doc = "`ReleaseEditedChangesBody`"] #[doc = r""] #[doc = r"
JSON schema"] @@ -72520,7 +72019,7 @@ impl ::std::convert::TryFrom<::std::string::String> for RepositoryEditedAction { #[doc = "}"] #[doc = r" ```"] #[doc = r"
"] -#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)] +#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug, Default)] #[serde(deny_unknown_fields)] pub struct RepositoryEditedChanges { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] @@ -72530,15 +72029,6 @@ pub struct RepositoryEditedChanges { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] pub homepage: ::std::option::Option, } -impl ::std::default::Default for RepositoryEditedChanges { - fn default() -> Self { - Self { - default_branch: Default::default(), - description: Default::default(), - homepage: Default::default(), - } - } -} #[doc = "`RepositoryEditedChangesDefaultBranch`"] #[doc = r""] #[doc = r"
JSON schema"] @@ -74528,19 +74018,12 @@ pub struct RepositoryTransferredChangesOwner { #[doc = "}"] #[doc = r" ```"] #[doc = r"
"] -#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)] +#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug, Default)] #[serde(deny_unknown_fields)] pub struct RepositoryTransferredChangesOwnerFrom { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] pub user: ::std::option::Option, } -impl ::std::default::Default for RepositoryTransferredChangesOwnerFrom { - fn default() -> Self { - Self { - user: Default::default(), - } - } -} #[doc = "`RepositoryUnarchived`"] #[doc = r""] #[doc = r"
JSON schema"] @@ -80413,19 +79896,12 @@ impl ::std::convert::TryFrom<::std::string::String> for SponsorshipEditedAction #[doc = "}"] #[doc = r" ```"] #[doc = r"
"] -#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)] +#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug, Default)] #[serde(deny_unknown_fields)] pub struct SponsorshipEditedChanges { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] pub privacy_level: ::std::option::Option, } -impl ::std::default::Default for SponsorshipEditedChanges { - fn default() -> Self { - Self { - privacy_level: Default::default(), - } - } -} #[doc = "`SponsorshipEditedChangesPrivacyLevel`"] #[doc = r""] #[doc = r"
JSON schema"] @@ -83646,7 +83122,7 @@ impl ::std::convert::TryFrom<::std::string::String> for TeamEditedAction { #[doc = "}"] #[doc = r" ```"] #[doc = r"
"] -#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)] +#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug, Default)] #[serde(deny_unknown_fields)] pub struct TeamEditedChanges { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] @@ -83658,16 +83134,6 @@ pub struct TeamEditedChanges { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] pub repository: ::std::option::Option, } -impl ::std::default::Default for TeamEditedChanges { - fn default() -> Self { - Self { - description: Default::default(), - name: Default::default(), - privacy: Default::default(), - repository: Default::default(), - } - } -} #[doc = "`TeamEditedChangesDescription`"] #[doc = r""] #[doc = r"
JSON schema"] @@ -83858,7 +83324,7 @@ pub struct TeamEditedChangesRepositoryPermissions { #[doc = "}"] #[doc = r" ```"] #[doc = r"
"] -#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)] +#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug, Default)] #[serde(deny_unknown_fields)] pub struct TeamEditedChangesRepositoryPermissionsFrom { #[doc = "The previous version of the team member's `admin` permission on a repository, if the action was `edited`."] @@ -83871,15 +83337,6 @@ pub struct TeamEditedChangesRepositoryPermissionsFrom { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] pub push: ::std::option::Option, } -impl ::std::default::Default for TeamEditedChangesRepositoryPermissionsFrom { - fn default() -> Self { - Self { - admin: Default::default(), - pull: Default::default(), - push: Default::default(), - } - } -} #[doc = "`TeamEvent`"] #[doc = r""] #[doc = r"
JSON schema"] diff --git a/typify-impl/tests/vega.out b/typify-impl/tests/vega.out index 9513315f..0477cd71 100644 --- a/typify-impl/tests/vega.out +++ b/typify-impl/tests/vega.out @@ -8066,7 +8066,7 @@ impl ::std::convert::From for AxisDomainWidth { #[doc = "}"] #[doc = r" ```"] #[doc = r"
"] -#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)] +#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug, Default)] #[serde(deny_unknown_fields)] pub struct AxisEncode { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] @@ -8082,18 +8082,6 @@ pub struct AxisEncode { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] pub title: ::std::option::Option, } -impl ::std::default::Default for AxisEncode { - fn default() -> Self { - Self { - axis: Default::default(), - domain: Default::default(), - grid: Default::default(), - labels: Default::default(), - ticks: Default::default(), - title: Default::default(), - } - } -} #[doc = "`AxisFormat`"] #[doc = r""] #[doc = r"
JSON schema"] @@ -20264,7 +20252,7 @@ impl ::std::convert::From for DataVariant2Format { #[doc = "}"] #[doc = r" ```"] #[doc = r"
"] -#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)] +#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug, Default)] pub struct DataVariant2FormatVariant0Subtype0 { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] pub parse: ::std::option::Option, @@ -20275,14 +20263,6 @@ pub struct DataVariant2FormatVariant0Subtype0 { )] pub type_: ::std::option::Option, } -impl ::std::default::Default for DataVariant2FormatVariant0Subtype0 { - fn default() -> Self { - Self { - parse: Default::default(), - type_: Default::default(), - } - } -} #[doc = "`DataVariant2FormatVariant0Subtype0Parse`"] #[doc = r""] #[doc = r"
JSON schema"] @@ -20703,7 +20683,7 @@ impl<'de> ::serde::Deserialize<'de> #[doc = "}"] #[doc = r" ```"] #[doc = r"
"] -#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)] +#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug, Default)] #[serde(deny_unknown_fields)] pub struct DataVariant2FormatVariant0Subtype1 { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] @@ -20719,16 +20699,6 @@ pub struct DataVariant2FormatVariant0Subtype1 { )] pub type_: ::std::option::Option, } -impl ::std::default::Default for DataVariant2FormatVariant0Subtype1 { - fn default() -> Self { - Self { - copy: Default::default(), - parse: Default::default(), - property: Default::default(), - type_: Default::default(), - } - } -} #[doc = "`DataVariant2FormatVariant0Subtype1Parse`"] #[doc = r""] #[doc = r"
JSON schema"] @@ -22764,7 +22734,7 @@ impl ::std::convert::From for DataVariant3Format { #[doc = "}"] #[doc = r" ```"] #[doc = r"
"] -#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)] +#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug, Default)] pub struct DataVariant3FormatVariant0Subtype0 { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] pub parse: ::std::option::Option, @@ -22775,14 +22745,6 @@ pub struct DataVariant3FormatVariant0Subtype0 { )] pub type_: ::std::option::Option, } -impl ::std::default::Default for DataVariant3FormatVariant0Subtype0 { - fn default() -> Self { - Self { - parse: Default::default(), - type_: Default::default(), - } - } -} #[doc = "`DataVariant3FormatVariant0Subtype0Parse`"] #[doc = r""] #[doc = r"
JSON schema"] @@ -23203,7 +23165,7 @@ impl<'de> ::serde::Deserialize<'de> #[doc = "}"] #[doc = r" ```"] #[doc = r"
"] -#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)] +#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug, Default)] #[serde(deny_unknown_fields)] pub struct DataVariant3FormatVariant0Subtype1 { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] @@ -23219,16 +23181,6 @@ pub struct DataVariant3FormatVariant0Subtype1 { )] pub type_: ::std::option::Option, } -impl ::std::default::Default for DataVariant3FormatVariant0Subtype1 { - fn default() -> Self { - Self { - copy: Default::default(), - parse: Default::default(), - property: Default::default(), - type_: Default::default(), - } - } -} #[doc = "`DataVariant3FormatVariant0Subtype1Parse`"] #[doc = r""] #[doc = r"
JSON schema"] @@ -28306,7 +28258,7 @@ impl ::std::convert::From<::std::collections::HashMap> f #[doc = "}"] #[doc = r" ```"] #[doc = r"
"] -#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)] +#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug, Default)] pub struct EncodeEntry { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] pub align: ::std::option::Option, @@ -28563,81 +28515,6 @@ pub struct EncodeEntry { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] pub zindex: ::std::option::Option, } -impl ::std::default::Default for EncodeEntry { - fn default() -> Self { - Self { - align: Default::default(), - angle: Default::default(), - aria: Default::default(), - aria_role: Default::default(), - aria_role_description: Default::default(), - aspect: Default::default(), - baseline: Default::default(), - blend: Default::default(), - clip: Default::default(), - corner_radius: Default::default(), - corner_radius_bottom_left: Default::default(), - corner_radius_bottom_right: Default::default(), - corner_radius_top_left: Default::default(), - corner_radius_top_right: Default::default(), - cursor: Default::default(), - defined: Default::default(), - description: Default::default(), - dir: Default::default(), - dx: Default::default(), - dy: Default::default(), - ellipsis: Default::default(), - end_angle: Default::default(), - fill: Default::default(), - fill_opacity: Default::default(), - font: Default::default(), - font_size: Default::default(), - font_style: Default::default(), - font_weight: Default::default(), - height: Default::default(), - inner_radius: Default::default(), - interpolate: Default::default(), - limit: Default::default(), - line_break: Default::default(), - line_height: Default::default(), - opacity: Default::default(), - orient: Default::default(), - outer_radius: Default::default(), - pad_angle: Default::default(), - path: Default::default(), - radius: Default::default(), - scale_x: Default::default(), - scale_y: Default::default(), - shape: Default::default(), - size: Default::default(), - smooth: Default::default(), - start_angle: Default::default(), - stroke: Default::default(), - stroke_cap: Default::default(), - stroke_dash: Default::default(), - stroke_dash_offset: Default::default(), - stroke_foreground: Default::default(), - stroke_join: Default::default(), - stroke_miter_limit: Default::default(), - stroke_offset: Default::default(), - stroke_opacity: Default::default(), - stroke_width: Default::default(), - tension: Default::default(), - text: Default::default(), - theta: Default::default(), - tooltip: Default::default(), - url: Default::default(), - width: Default::default(), - x: Default::default(), - x2: Default::default(), - xc: Default::default(), - y: Default::default(), - y2: Default::default(), - yc: Default::default(), - zindex: Default::default(), - } - } -} #[doc = "`EncodeKey`"] #[doc = r""] #[doc = r"
JSON schema"] @@ -28748,7 +28625,7 @@ impl<'de> ::serde::Deserialize<'de> for EncodeKey { #[doc = "}"] #[doc = r" ```"] #[doc = r"
"] -#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)] +#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug, Default)] pub struct Everything { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] pub autosize: ::std::option::Option, @@ -28795,32 +28672,6 @@ pub struct Everything { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] pub width: ::std::option::Option, } -impl ::std::default::Default for Everything { - fn default() -> Self { - Self { - autosize: Default::default(), - axes: Default::default(), - background: Default::default(), - config: Default::default(), - data: Default::default(), - description: Default::default(), - encode: Default::default(), - height: Default::default(), - layout: Default::default(), - legends: Default::default(), - marks: Default::default(), - padding: Default::default(), - projections: Default::default(), - scales: Default::default(), - schema: Default::default(), - signals: Default::default(), - style: Default::default(), - title: Default::default(), - usermeta: Default::default(), - width: Default::default(), - } - } -} #[doc = "`EverythingMarksItem`"] #[doc = r""] #[doc = r"
JSON schema"] @@ -29327,7 +29178,7 @@ pub enum FacetFacet { #[doc = "}"] #[doc = r" ```"] #[doc = r"
"] -#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)] +#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug, Default)] #[serde(deny_unknown_fields)] pub struct FacetFacetVariant1Aggregate { #[serde( @@ -29343,16 +29194,6 @@ pub struct FacetFacetVariant1Aggregate { #[serde(default, skip_serializing_if = "::std::vec::Vec::is_empty")] pub ops: ::std::vec::Vec<::std::string::String>, } -impl ::std::default::Default for FacetFacetVariant1Aggregate { - fn default() -> Self { - Self { - as_: Default::default(), - cross: Default::default(), - fields: Default::default(), - ops: Default::default(), - } - } -} #[doc = "`FacetFacetVariant1Groupby`"] #[doc = r""] #[doc = r"
JSON schema"] @@ -33523,19 +33364,12 @@ impl ::std::convert::TryFrom<::std::string::String> for FormulaTransformType { #[doc = "}"] #[doc = r" ```"] #[doc = r"
"] -#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)] +#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug, Default)] #[serde(deny_unknown_fields)] pub struct From { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] pub data: ::std::option::Option<::std::string::String>, } -impl ::std::default::Default for From { - fn default() -> Self { - Self { - data: Default::default(), - } - } -} #[doc = "`GeojsonTransform`"] #[doc = r""] #[doc = r"
JSON schema"] @@ -35429,7 +35263,7 @@ impl ::std::convert::TryFrom<::std::string::String> for GraticuleTransformType { #[doc = "}"] #[doc = r" ```"] #[doc = r"
"] -#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)] +#[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug, Default)] #[serde(deny_unknown_fields)] pub struct GuideEncode { #[serde(default)] @@ -35439,15 +35273,6 @@ pub struct GuideEncode { #[serde(default, skip_serializing_if = "::std::option::Option::is_none")] pub style: ::std::option::Option