From 53d89eb1014e97a1ed3c5915b90759d6287bd8df Mon Sep 17 00:00:00 2001 From: Afloat <132809511+Afloat16@users.noreply.github.com> Date: Tue, 20 Oct 2026 21:25:23 +0800 Subject: [PATCH] Keep reference definition maps indirect to bound schema enum size --- deepseek-recipe/src/protocol/json_schema.rs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/deepseek-recipe/src/protocol/json_schema.rs b/deepseek-recipe/src/protocol/json_schema.rs index 063e921..053f527 100644 --- a/deepseek-recipe/src/protocol/json_schema.rs +++ b/deepseek-recipe/src/protocol/json_schema.rs @@ -64,9 +64,9 @@ pub(crate) enum JsonSchemaType { description: Option, // Retain legacy `$def` as well as the standard definition containers. #[serde(rename = "$defs", skip_serializing_if = "Option::is_none")] - defs: Option>>, + defs: Option>>>, #[serde(skip_serializing_if = "Option::is_none")] - definitions: Option>>, + definitions: Option>>>, #[serde(rename = "$def", skip_serializing_if = "Option::is_none")] def: Option>>, }, @@ -209,7 +209,11 @@ impl JsonSchemaType { for value in properties.values_mut() { value.normalize(false)?; } - for definitions in [def, defs, definitions].into_iter().flatten() { + for definitions in def + .iter_mut() + .chain(defs.iter_mut().map(Box::as_mut)) + .chain(definitions.iter_mut().map(Box::as_mut)) + { for value in definitions.values_mut() { value.normalize(false)?; }