[pdm-devel] [PATCH proxmox v2 2/4] pve-api-types: generate fallback variant for enums
Stefan Hanreich
s.hanreich at proxmox.com
Thu Nov 13 16:09:26 CET 2025
Generate a new variant, UnknownEnumValue, which is used as a fallback
in case the enum variant is unknown in PDM. This ensures
forwards-compatibility with newer Proxmox VE versions, in case they
introduce a new variant to an enum string type. Otherwise,
deserializing return values from the Proxmox VE API fails and can
cause severe issues in the PDM backend / frontend.
Signed-off-by: Stefan Hanreich <s.hanreich at proxmox.com>
---
pve-api-types/generator-lib/Schema2Rust.pm | 3 +++
1 file changed, 3 insertions(+)
diff --git a/pve-api-types/generator-lib/Schema2Rust.pm b/pve-api-types/generator-lib/Schema2Rust.pm
index f54b3683..ab1c1700 100644
--- a/pve-api-types/generator-lib/Schema2Rust.pm
+++ b/pve-api-types/generator-lib/Schema2Rust.pm
@@ -295,6 +295,9 @@ sub print_types : prototype($) {
print {$out} " /// $orig.\n";
print {$out} " $named,\n";
};
+ print {$out} " /// Unknown variants for forward compatibility.\n";
+ print {$out} " #[serde(untagged)]\n";
+ print {$out} " UnknownEnumValue(FixedString)\n";
print {$out} "}\n";
print {$out} "serde_plain::derive_display_from_serialize!($def->{name});\n";
print {$out} "serde_plain::derive_fromstr_from_deserialize!($def->{name});\n";
--
2.47.3
More information about the pdm-devel
mailing list