[pbs-devel] [PATCH proxmox-api-types 1/2] generator: use proxmox_serde for perl helpers
Stefan Hanreich
s.hanreich at proxmox.com
Tue May 13 13:44:11 CEST 2025
Since the patch #2 didn't go through due to size:
pve-api-types would need to be re-generated after this patch.
On 5/13/25 12:14, Stefan Hanreich wrote:
> The helpers for parsing perl values have been moved to proxmox_serde,
> update all references to proxmox_login. No functional changes.
>
> Signed-off-by: Stefan Hanreich <s.hanreich at proxmox.com>
> ---
> Cargo.toml | 2 +-
> pve-api-types/Cargo.toml | 2 +-
> pve-api-types/generator-lib/Schema2Rust.pm | 26 +++++++++++-----------
> 3 files changed, 15 insertions(+), 15 deletions(-)
>
> diff --git a/Cargo.toml b/Cargo.toml
> index 1bbdd01..1e119d3 100644
> --- a/Cargo.toml
> +++ b/Cargo.toml
> @@ -22,7 +22,7 @@ serde_plain = "1"
> serde_json = "1"
>
> proxmox-api-macro = "1.3"
> -proxmox-login = "0.2"
> +proxmox-serde = "0.1.2"
> proxmox-schema = "4"
>
> proxmox-client = "0.5"
> diff --git a/pve-api-types/Cargo.toml b/pve-api-types/Cargo.toml
> index 73cd3ef..e388cac 100644
> --- a/pve-api-types/Cargo.toml
> +++ b/pve-api-types/Cargo.toml
> @@ -18,7 +18,7 @@ serde_json.workspace = true
> serde_plain.workspace = true
> #
> proxmox-api-macro.workspace = true
> -proxmox-login.workspace = true
> +proxmox-serde = { workspace = true, features = [ "perl" ] }
> proxmox-schema = { workspace = true, features = [ "api-types", "api-macro" ] }
>
> # For the client feature:
> diff --git a/pve-api-types/generator-lib/Schema2Rust.pm b/pve-api-types/generator-lib/Schema2Rust.pm
> index 009cf13..99a8fd6 100644
> --- a/pve-api-types/generator-lib/Schema2Rust.pm
> +++ b/pve-api-types/generator-lib/Schema2Rust.pm
> @@ -1127,18 +1127,18 @@ my sub array_type : prototype($$$) {
> }
>
> my %serde_num = (
> - usize => '#[serde(deserialize_with = "proxmox_login::parse::deserialize_usize")]',
> - isize => '#[serde(deserialize_with = "proxmox_login::parse::deserialize_isize")]',
> - u8 => '#[serde(deserialize_with = "proxmox_login::parse::deserialize_u8")]',
> - u16 => '#[serde(deserialize_with = "proxmox_login::parse::deserialize_u16")]',
> - u32 => '#[serde(deserialize_with = "proxmox_login::parse::deserialize_u32")]',
> - u64 => '#[serde(deserialize_with = "proxmox_login::parse::deserialize_u64")]',
> - i8 => '#[serde(deserialize_with = "proxmox_login::parse::deserialize_i8")]',
> - i16 => '#[serde(deserialize_with = "proxmox_login::parse::deserialize_i16")]',
> - i32 => '#[serde(deserialize_with = "proxmox_login::parse::deserialize_i32")]',
> - i64 => '#[serde(deserialize_with = "proxmox_login::parse::deserialize_i64")]',
> - f32 => '#[serde(deserialize_with = "proxmox_login::parse::deserialize_f32")]',
> - f64 => '#[serde(deserialize_with = "proxmox_login::parse::deserialize_f64")]',
> + usize => '#[serde(deserialize_with = "proxmox_serde::perl::deserialize_usize")]',
> + isize => '#[serde(deserialize_with = "proxmox_serde::perl::deserialize_isize")]',
> + u8 => '#[serde(deserialize_with = "proxmox_serde::perl::deserialize_u8")]',
> + u16 => '#[serde(deserialize_with = "proxmox_serde::perl::deserialize_u16")]',
> + u32 => '#[serde(deserialize_with = "proxmox_serde::perl::deserialize_u32")]',
> + u64 => '#[serde(deserialize_with = "proxmox_serde::perl::deserialize_u64")]',
> + i8 => '#[serde(deserialize_with = "proxmox_serde::perl::deserialize_i8")]',
> + i16 => '#[serde(deserialize_with = "proxmox_serde::perl::deserialize_i16")]',
> + i32 => '#[serde(deserialize_with = "proxmox_serde::perl::deserialize_i32")]',
> + i64 => '#[serde(deserialize_with = "proxmox_serde::perl::deserialize_i64")]',
> + f32 => '#[serde(deserialize_with = "proxmox_serde::perl::deserialize_f32")]',
> + f64 => '#[serde(deserialize_with = "proxmox_serde::perl::deserialize_f64")]',
> );
>
> sub handle_def : prototype($$$) {
> @@ -1169,7 +1169,7 @@ sub handle_def : prototype($$$) {
> } elsif ($type eq 'boolean') {
> $def->{type} = 'bool';
> push $def->{attrs}->@*,
> - "#[serde(deserialize_with = \"proxmox_login::parse::deserialize_bool\")]";
> + "#[serde(deserialize_with = \"proxmox_serde::perl::deserialize_bool\")]";
> $def->{api}->{default} = bool(delete $schema->{default});
> } elsif ($type eq 'number') {
> $def->{api}->{default} = delete $schema->{default};
More information about the pbs-devel
mailing list