Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .generator/src/generator/templates/model_simple.j2
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,13 @@ impl<'de> Deserialize<'de> for {{ name }} {
let mut _unparsed = false;

while let Some((k, v)) = map.next_entry::<String, serde_json::Value>()? {
{%- if additionalProperties != false and model.get("x-keep-typed-in-additional-properties") %}
// from_value::<serde_json::Value> is infallible so Ok always fires;
// for typed AP schemas a type mismatch silently drops the entry (same as the catch-all arm).
if let Ok(ap_value) = serde_json::from_value(v.clone()) {
additional_properties.insert(k.clone(), ap_value);
}
{%- endif %}
match k.as_str() {
{%- for attr, schema in model.get("properties", {}).items() %}
{%- set required = attr in model.required %}
Expand Down
Loading