From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) by lore.proxmox.com (Postfix) with ESMTPS id 7A3591FF179 for ; Wed, 12 Nov 2025 10:21:44 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id B21461B8DA; Wed, 12 Nov 2025 10:22:31 +0100 (CET) From: Stefan Hanreich To: pdm-devel@lists.proxmox.com Date: Wed, 12 Nov 2025 10:22:06 +0100 Message-ID: <20251112092225.17890-3-s.hanreich@proxmox.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20251112092225.17890-1-s.hanreich@proxmox.com> References: <20251112092225.17890-1-s.hanreich@proxmox.com> MIME-Version: 1.0 X-SPAM-LEVEL: Spam detection results: 0 AWL -0.173 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment KAM_LAZY_DOMAIN_SECURITY 1 Sending domain does not have any anti-forgery methods RDNS_NONE 0.793 Delivered to internal network by a host with no rDNS SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_NONE 0.001 SPF: sender does not publish an SPF Record URIBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [schema2rust.pm] Subject: [pdm-devel] [PATCH proxmox 2/3] pve-api-types: generate fallback variant for enums X-BeenThere: pdm-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox Datacenter Manager development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Proxmox Datacenter Manager development discussion Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: pdm-devel-bounces@lists.proxmox.com Sender: "pdm-devel" 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 --- 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 _______________________________________________ pdm-devel mailing list pdm-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pdm-devel