From ae9544aaf96b505f2b1b9a2f583d3c945cf4543d Mon Sep 17 00:00:00 2001 From: Graham Esau Date: Sat, 11 Nov 2023 20:28:10 +0000 Subject: [PATCH] Put schema value into a variable before calling apply_metadata This reduces size of MIR output, which should somewhat mitigate #246 --- schemars_derive/src/metadata.rs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/schemars_derive/src/metadata.rs b/schemars_derive/src/metadata.rs index 32dbf671..e9637044 100644 --- a/schemars_derive/src/metadata.rs +++ b/schemars_derive/src/metadata.rs @@ -15,12 +15,13 @@ impl<'a> SchemaMetadata<'a> { pub fn apply_to_schema(&self, schema_expr: &mut TokenStream) { let setters = self.make_setters(); if !setters.is_empty() { - *schema_expr = quote! { - schemars::_private::apply_metadata(#schema_expr, schemars::schema::Metadata { + *schema_expr = quote! {{ + let schema = #schema_expr; + schemars::_private::apply_metadata(schema, schemars::schema::Metadata { #(#setters)* ..Default::default() }) - } + }} } }