all lists on lists.proxmox.com
 help / color / mirror / Atom feed
* [pdm-devel] [PATCH proxmox v2] pve-api-types: schema2rust: handle `macro` keyword like we do `type`
@ 2025-10-23 14:19 Hannes Laimer
  2025-11-05 10:44 ` [pdm-devel] applied: " Wolfgang Bumiller
  0 siblings, 1 reply; 2+ messages in thread
From: Hannes Laimer @ 2025-10-23 14:19 UTC (permalink / raw)
  To: pdm-devel

Firewall rules have a field named `macro`, this would trip up the
generated rust code. This fixes that.

Signed-off-by: Hannes Laimer <h.laimer@proxmox.com>
---
v2:
- include quoting of `macro`, this was missing in v1 but is needed

 pve-api-types/generator-lib/Schema2Rust.pm | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/pve-api-types/generator-lib/Schema2Rust.pm b/pve-api-types/generator-lib/Schema2Rust.pm
index c5ac4aad..9b984abb 100644
--- a/pve-api-types/generator-lib/Schema2Rust.pm
+++ b/pve-api-types/generator-lib/Schema2Rust.pm
@@ -125,8 +125,8 @@ sub api_to_string : prototype($$$$$) {
 
         local $API_TYPE_POS = "$API_TYPE_POS/$key";
 
-        # We need to quote keys with hyphens:
-        my $safe_key = ($key =~ /-/) ? "\"$key\"" : $key;
+        # We need to quote keys with hyphens or reserved keywords:
+        my $safe_key = (($key =~ /-/) || ($key eq 'macro')) ? "\"$key\"" : $key;
 
         if (exists($API_TYPE_OVERRIDES{$API_TYPE_POS})) {
             $value = $API_TYPE_OVERRIDES{$API_TYPE_POS};
@@ -171,7 +171,7 @@ sub api_to_string : prototype($$$$$) {
                 warn "api type extension for $API_TYPE_POS.$key already in schema, skipping\n";
                 next;
             }
-            my $safe_key = ($key =~ /-/) ? "\"$key\"" : $key;
+            my $safe_key = (($key =~ /-/) || ($key eq 'macro')) ? "\"$key\"" : $key;
             my $value = $extra->{$key};
             print {$out} "${indent}$safe_key: $value,\n";
         }
@@ -713,6 +713,7 @@ sub namify_field : prototype($) {
     }
 
     return 'ty' if $out eq 'type';
+    return 'r#macro' if $out eq 'macro';
 
     return $out;
 }
-- 
2.47.3



_______________________________________________
pdm-devel mailing list
pdm-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pdm-devel


^ permalink raw reply	[flat|nested] 2+ messages in thread

* [pdm-devel] applied: [PATCH proxmox v2] pve-api-types: schema2rust: handle `macro` keyword like we do `type`
  2025-10-23 14:19 [pdm-devel] [PATCH proxmox v2] pve-api-types: schema2rust: handle `macro` keyword like we do `type` Hannes Laimer
@ 2025-11-05 10:44 ` Wolfgang Bumiller
  0 siblings, 0 replies; 2+ messages in thread
From: Wolfgang Bumiller @ 2025-11-05 10:44 UTC (permalink / raw)
  To: Hannes Laimer; +Cc: pdm-devel

applied, thanks

On Thu, Oct 23, 2025 at 04:19:56PM +0200, Hannes Laimer wrote:
> Firewall rules have a field named `macro`, this would trip up the
> generated rust code. This fixes that.
> 
> Signed-off-by: Hannes Laimer <h.laimer@proxmox.com>
> ---
> v2:
> - include quoting of `macro`, this was missing in v1 but is needed
> 
>  pve-api-types/generator-lib/Schema2Rust.pm | 7 ++++---
>  1 file changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git a/pve-api-types/generator-lib/Schema2Rust.pm b/pve-api-types/generator-lib/Schema2Rust.pm
> index c5ac4aad..9b984abb 100644
> --- a/pve-api-types/generator-lib/Schema2Rust.pm
> +++ b/pve-api-types/generator-lib/Schema2Rust.pm
> @@ -125,8 +125,8 @@ sub api_to_string : prototype($$$$$) {
>  
>          local $API_TYPE_POS = "$API_TYPE_POS/$key";
>  
> -        # We need to quote keys with hyphens:
> -        my $safe_key = ($key =~ /-/) ? "\"$key\"" : $key;
> +        # We need to quote keys with hyphens or reserved keywords:
> +        my $safe_key = (($key =~ /-/) || ($key eq 'macro')) ? "\"$key\"" : $key;
>  
>          if (exists($API_TYPE_OVERRIDES{$API_TYPE_POS})) {
>              $value = $API_TYPE_OVERRIDES{$API_TYPE_POS};
> @@ -171,7 +171,7 @@ sub api_to_string : prototype($$$$$) {
>                  warn "api type extension for $API_TYPE_POS.$key already in schema, skipping\n";
>                  next;
>              }
> -            my $safe_key = ($key =~ /-/) ? "\"$key\"" : $key;
> +            my $safe_key = (($key =~ /-/) || ($key eq 'macro')) ? "\"$key\"" : $key;
>              my $value = $extra->{$key};
>              print {$out} "${indent}$safe_key: $value,\n";
>          }
> @@ -713,6 +713,7 @@ sub namify_field : prototype($) {
>      }
>  
>      return 'ty' if $out eq 'type';
> +    return 'r#macro' if $out eq 'macro';
>  
>      return $out;
>  }
> -- 
> 2.47.3


_______________________________________________
pdm-devel mailing list
pdm-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pdm-devel


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2025-11-05 10:43 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-10-23 14:19 [pdm-devel] [PATCH proxmox v2] pve-api-types: schema2rust: handle `macro` keyword like we do `type` Hannes Laimer
2025-11-05 10:44 ` [pdm-devel] applied: " Wolfgang Bumiller

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal