[pdm-devel] [PATCH proxmox-api-types] generator: Remove needless borrows

Maximiliano Sandoval m.sandoval at proxmox.com
Wed Feb 19 15:06:30 CET 2025


Signed-off-by: Maximiliano Sandoval <m.sandoval at proxmox.com>
---
 pve-api-types/generator-lib/Schema2Rust.pm | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/pve-api-types/generator-lib/Schema2Rust.pm b/pve-api-types/generator-lib/Schema2Rust.pm
index 84f36f6..173d66f 100644
--- a/pve-api-types/generator-lib/Schema2Rust.pm
+++ b/pve-api-types/generator-lib/Schema2Rust.pm
@@ -453,6 +453,7 @@ my sub print_method_without_body : prototype($$$$$) {
     }
 
     my $input;
+    my $is_url_owned = 0;
     if (defined($input = $def->{input_type})) {
         print {$out} "    params: $input,\n";
         print {$out} ") -> Result<$def->{output_type}, Error> {\n";
@@ -486,6 +487,7 @@ my sub print_method_without_body : prototype($$$$$) {
                 print {$out} "    add_query_arg(&mut query, &mut sep, \"$name\", &p_$rust_name);\n";
             }
         }
+        $is_url_owned = 1;
         print {$out} "    let url = format!(\"/api2/extjs$def->{url}\{query}\");\n";
     } elsif (defined($input = $def->{input})) {
         for my $arg ($input->@*) {
@@ -510,6 +512,7 @@ my sub print_method_without_body : prototype($$$$$) {
                     print {$out} "    add_query_arg(&mut query, &mut sep, \"$name\", &$rust_name);\n";
                 }
             }
+            $is_url_owned = 1;
             print {$out} "    let url = format!(\"/api2/extjs$def->{url}\{query}\");\n";
         } else {
             print {$out} "    let url = \"/api2/extjs$def->{url}\";\n";
@@ -523,7 +526,8 @@ my sub print_method_without_body : prototype($$$$$) {
         print {$out} "    let url = \"/api2/extjs$def->{url}\";\n";
     }
 
-    my $call = return_expr($def, "self.0.$method(&url).await?");
+    my $maybe_borrowed_url = $is_url_owned ? '&url' : 'url';
+    my $call = return_expr($def, "self.0.$method($maybe_borrowed_url).await?");
     print {$out} "    $call\n";
 
     print {$out} "}\n\n";
@@ -554,7 +558,7 @@ my sub print_method_with_body : prototype($$$$$) {
     }
     # print {$out} "    // self.login().await?;\n";
     print {$out} "    let url = \"/api2/extjs$def->{url}\";\n";
-        my $call = return_expr($def, "self.0.${method}(&url, &params).await?");
+        my $call = return_expr($def, "self.0.${method}(url, &params).await?");
         print {$out} "    $call\n";
     print {$out} "}\n\n";
 }
-- 
2.39.5





More information about the pdm-devel mailing list