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 5080E1FF154 for ; Fri, 06 Mar 2026 12:21:00 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 4B48E1F864; Fri, 6 Mar 2026 12:22:01 +0100 (CET) From: Shannon Sterz To: yew-devel@lists.proxmox.com Subject: [PATCH yew-comp 14/15] tree wide: fix clippy lint "large_enum_variant" Date: Fri, 6 Mar 2026 12:21:46 +0100 Message-ID: <20260306112148.208189-15-s.sterz@proxmox.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260306112148.208189-1-s.sterz@proxmox.com> References: <20260306112148.208189-1-s.sterz@proxmox.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1772796083244 X-SPAM-LEVEL: Spam detection results: 0 AWL -1.396 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 RCVD_IN_MSPIKE_H2 0.001 Average reputation (+2) SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record URIBL_BLACK 3 Contains an URL listed in the URIBL blacklist [rust-lang.github.io] Message-ID-Hash: GDD6L5XUOMHOZRU25XYDFO3CABHK7Z6C X-Message-ID-Hash: GDD6L5XUOMHOZRU25XYDFO3CABHK7Z6C X-MailFrom: s.sterz@proxmox.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Yew framework devel list at Proxmox List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: see: https://rust-lang.github.io/rust-clippy/master/index.html#large_enum_variant Signed-off-by: Shannon Sterz --- .../reassign_volume_dialog.rs | 10 +++++----- src/configuration/pve/move_disk_dialog.rs | 10 +++++----- .../reassign_disk_dialog.rs | 10 +++++----- .../lxc_property/lxc_mount_point_property.rs | 10 +++++----- .../pve/qemu_property/qemu_disk_property.rs | 20 +++++++++++++------ .../qemu_property/qemu_efidisk_property.rs | 17 ++++++++++------ .../qemu_property/qemu_tpmstate_property.rs | 17 ++++++++++------ 7 files changed, 56 insertions(+), 38 deletions(-) diff --git a/src/configuration/pve/lxc_resources_panel/reassign_volume_dialog.rs b/src/configuration/pve/lxc_resources_panel/reassign_volume_dialog.rs index d7c7389..87f63d7 100644 --- a/src/configuration/pve/lxc_resources_panel/reassign_volume_dialog.rs +++ b/src/configuration/pve/lxc_resources_panel/reassign_volume_dialog.rs @@ -36,12 +36,12 @@ struct LxcReassignVolumePanel { } enum Msg { - Target(Option), + Target(Box>), LoadResult(Result), } struct LxcReassignVolumeComp { - target: Option, + target: Box>, load_guard: Option, used_mount_points: HashSet, validate_id: Option>, @@ -53,7 +53,7 @@ impl Component for LxcReassignVolumeComp { fn create(_ctx: &Context) -> Self { Self { - target: None, + target: Box::new(None), load_guard: None, used_mount_points: HashSet::new(), validate_id: None, @@ -69,7 +69,7 @@ impl Component for LxcReassignVolumeComp { node: Some(node), vmid: Some(vmid), .. - }) = &self.target + }) = &*self.target { let url = guest_config_url( *vmid, @@ -141,7 +141,7 @@ impl Component for LxcReassignVolumeComp { .required(true) .guest_type(PveGuestType::Lxc) .exclude_guest(props.vmid) - .on_change(ctx.link().callback(Msg::Target)) + .on_change(ctx.link().callback(|t| Msg::Target(Box::new(t)))) .mobile(props.mobile) .submit(false); diff --git a/src/configuration/pve/move_disk_dialog.rs b/src/configuration/pve/move_disk_dialog.rs index 57d4549..6f19204 100644 --- a/src/configuration/pve/move_disk_dialog.rs +++ b/src/configuration/pve/move_disk_dialog.rs @@ -22,11 +22,11 @@ struct MoveDiskPanel { enum Msg { FormUpdate, - StorageInfo(Option), + StorageInfo(Box>), } struct MoveDiskPanelComp { - storage_info: Option, + storage_info: Box>, _observer: FormContextObserver, } @@ -42,7 +42,7 @@ impl Component for MoveDiskPanelComp { .add_listener(ctx.link().callback(|_| Msg::FormUpdate)); Self { - storage_info: None, + storage_info: Box::new(None), _observer, } } @@ -58,7 +58,7 @@ impl Component for MoveDiskPanelComp { let props = ctx.props(); // let state = &props.state; - let (supported_formats, default_format) = match &self.storage_info { + let (supported_formats, default_format) = match &*self.storage_info { Some(StorageInfo { formats: Some(formats), .. @@ -85,7 +85,7 @@ impl Component for MoveDiskPanelComp { .include_select_existing(false) .autoselect(true) .content_types(Some(content_types)) - .on_change(ctx.link().callback(Msg::StorageInfo)) + .on_change(ctx.link().callback(|t| Msg::StorageInfo(Box::new(t)))) .mobile(props.mobile); let format_label = tr!("Format"); diff --git a/src/configuration/pve/qemu_hardware_panel/reassign_disk_dialog.rs b/src/configuration/pve/qemu_hardware_panel/reassign_disk_dialog.rs index 600b095..bc3e377 100644 --- a/src/configuration/pve/qemu_hardware_panel/reassign_disk_dialog.rs +++ b/src/configuration/pve/qemu_hardware_panel/reassign_disk_dialog.rs @@ -30,12 +30,12 @@ struct QemuReassignDiskPanel { } enum Msg { - Target(Option), + Target(Box>), LoadResult(Result), } struct QemuReassignDiskPanelComp { - target: Option, + target: Box>, load_guard: Option, used_devices: Option>, } @@ -46,7 +46,7 @@ impl Component for QemuReassignDiskPanelComp { fn create(_ctx: &Context) -> Self { Self { - target: None, + target: Box::new(None), load_guard: None, used_devices: None, } @@ -61,7 +61,7 @@ impl Component for QemuReassignDiskPanelComp { node: Some(node), vmid: Some(vmid), .. - }) = &self.target + }) = &*self.target { let url = guest_config_url( *vmid, @@ -100,7 +100,7 @@ impl Component for QemuReassignDiskPanelComp { .required(true) .guest_type(PveGuestType::Qemu) .exclude_guest(props.vmid) - .on_change(ctx.link().callback(Msg::Target)) + .on_change(ctx.link().callback(|t| Msg::Target(Box::new(t)))) .mobile(props.mobile) .submit(false); diff --git a/src/form/pve/lxc_property/lxc_mount_point_property.rs b/src/form/pve/lxc_property/lxc_mount_point_property.rs index 36f36a0..8f59725 100644 --- a/src/form/pve/lxc_property/lxc_mount_point_property.rs +++ b/src/form/pve/lxc_property/lxc_mount_point_property.rs @@ -52,7 +52,7 @@ struct MountPointPanel { } struct MountPointComp { - storage_info: Option, + storage_info: Box>, _observer: FormContextObserver, is_create: bool, @@ -65,7 +65,7 @@ struct MountPointComp { enum Msg { FormUpdate, - StorageInfo(Option), + StorageInfo(Box>), } impl MountPointComp { @@ -109,7 +109,7 @@ impl Component for MountPointComp { Self { _observer, - storage_info: None, + storage_info: Box::new(None), is_create: props.name.is_none(), unused_volume: String::new(), used_mount_points: HashSet::new(), @@ -141,7 +141,7 @@ impl Component for MountPointComp { let advanced = form_ctx.get_show_advanced(); - let storage_type = match &self.storage_info { + let storage_type = match &*self.storage_info { Some(StorageInfo { ty, .. }) => ty.clone(), _ => String::new(), }; @@ -203,7 +203,7 @@ impl Component for MountPointComp { .submit(false) .required(true) .content_types(Some(vec![StorageContent::Rootdir])) - .on_change(ctx.link().callback(Msg::StorageInfo)) + .on_change(ctx.link().callback(|i| Msg::StorageInfo(Box::new(i)))) .mobile(mobile); let disk_size_label = tr!("Disk size") + " (GiB)"; diff --git a/src/form/pve/qemu_property/qemu_disk_property.rs b/src/form/pve/qemu_property/qemu_disk_property.rs index 8e64b10..724d24e 100644 --- a/src/form/pve/qemu_property/qemu_disk_property.rs +++ b/src/form/pve/qemu_property/qemu_disk_property.rs @@ -52,7 +52,7 @@ struct DiskPanel { } struct DiskPanelComp { - storage_info: Option, + storage_info: Box>, _observer: FormContextObserver, is_create: bool, @@ -65,7 +65,7 @@ struct DiskPanelComp { enum DiskPanelMsg { FormUpdate, - StorageInfo(Option), + StorageInfo(Box>), } impl DiskPanelComp { @@ -135,7 +135,7 @@ impl Component for DiskPanelComp { .add_listener(ctx.link().callback(|_| DiskPanelMsg::FormUpdate)); Self { - storage_info: None, + storage_info: Box::new(None), _observer, is_create: props.name.is_none(), is_scsi: false, @@ -170,7 +170,7 @@ impl Component for DiskPanelComp { let advanced = form_ctx.get_show_advanced(); - let (supported_formats, default_format, select_existing) = match &self.storage_info { + let (supported_formats, default_format, select_existing) = match &*self.storage_info { Some(StorageInfo { formats: Some(formats), select_existing, @@ -225,7 +225,10 @@ impl Component for DiskPanelComp { .submit(false) .required(true) .content_types(Some(vec![StorageContent::Images])) - .on_change(ctx.link().callback(DiskPanelMsg::StorageInfo)) + .on_change( + ctx.link() + .callback(|i| DiskPanelMsg::StorageInfo(Box::new(i))), + ) .mobile(mobile); let disk_image_label = tr!("Disk image"); @@ -234,7 +237,12 @@ impl Component for DiskPanelComp { .name(FILE_PN) .node(props.node.clone()) .required(true) - .storage(self.storage_info.as_ref().map(|info| info.storage.clone())); + .storage( + self.storage_info + .as_ref() + .as_ref() + .map(|info| info.storage.clone()), + ); let disk_size_label = tr!("Disk size") + " (GiB)"; let disk_size_field = QemuDiskSizeFormatSelector::new() diff --git a/src/form/pve/qemu_property/qemu_efidisk_property.rs b/src/form/pve/qemu_property/qemu_efidisk_property.rs index 3497238..a692230 100644 --- a/src/form/pve/qemu_property/qemu_efidisk_property.rs +++ b/src/form/pve/qemu_property/qemu_efidisk_property.rs @@ -32,10 +32,10 @@ struct QemuEfidiskPanel { enum Msg { FormUpdate, - StorageInfo(Option), + StorageInfo(Box>), } struct QemuEfidiskPanelComp { - storage_info: Option, + storage_info: Box>, _observer: FormContextObserver, } @@ -51,7 +51,7 @@ impl Component for QemuEfidiskPanelComp { .add_listener(ctx.link().callback(|_| Msg::FormUpdate)); Self { - storage_info: None, + storage_info: Box::new(None), _observer, } } @@ -69,7 +69,7 @@ impl Component for QemuEfidiskPanelComp { let mobile = props.mobile; let state = &props.state; - let (supported_formats, default_format, select_existing) = match &self.storage_info { + let (supported_formats, default_format, select_existing) = match &*self.storage_info { Some(StorageInfo { formats: Some(formats), select_existing, @@ -103,7 +103,7 @@ impl Component for QemuEfidiskPanelComp { .required(true) .autoselect(true) .content_types(Some(vec![StorageContent::Images])) - .on_change(ctx.link().callback(Msg::StorageInfo)) + .on_change(ctx.link().callback(|i| Msg::StorageInfo(Box::new(i)))) .mobile(true); let format_label = tr!("Format"); @@ -119,7 +119,12 @@ impl Component for QemuEfidiskPanelComp { .name(FILE_PN) .node(props.node.clone()) .required(true) - .storage(self.storage_info.as_ref().map(|info| info.storage.clone())); + .storage( + self.storage_info + .as_ref() + .as_ref() + .map(|info| info.storage.clone()), + ); let bios_hint = hint(tr!( "Warning: The VM currently does not uses 'OVMF (UEFI)' as BIOS." diff --git a/src/form/pve/qemu_property/qemu_tpmstate_property.rs b/src/form/pve/qemu_property/qemu_tpmstate_property.rs index 42264f6..39234f0 100644 --- a/src/form/pve/qemu_property/qemu_tpmstate_property.rs +++ b/src/form/pve/qemu_property/qemu_tpmstate_property.rs @@ -24,10 +24,10 @@ struct QemuTpmStatePanel { enum Msg { FormUpdate, - StorageInfo(Option), + StorageInfo(Box>), } struct QemuTpmStatePanelComp { - storage_info: Option, + storage_info: Box>, _observer: FormContextObserver, } @@ -43,7 +43,7 @@ impl Component for QemuTpmStatePanelComp { .add_listener(ctx.link().callback(|_| Msg::FormUpdate)); Self { - storage_info: None, + storage_info: Box::new(None), _observer, } } @@ -60,7 +60,7 @@ impl Component for QemuTpmStatePanelComp { let props = ctx.props(); let mobile = props.mobile; - let select_existing = match &self.storage_info { + let select_existing = match &*self.storage_info { Some(StorageInfo { select_existing, .. }) => select_existing.unwrap_or(false), @@ -74,7 +74,12 @@ impl Component for QemuTpmStatePanelComp { .node(props.node.clone()) .required(true) .disabled(!select_existing) - .storage(self.storage_info.as_ref().map(|info| info.storage.clone())); + .storage( + self.storage_info + .as_ref() + .as_ref() + .map(|info| info.storage.clone()), + ); let mut panel = InputPanel::new() .mobile(mobile) @@ -89,7 +94,7 @@ impl Component for QemuTpmStatePanelComp { .required(true) .autoselect(true) .content_types(Some(vec![StorageContent::Images])) - .on_change(ctx.link().callback(Msg::StorageInfo)) + .on_change(ctx.link().callback(|t| Msg::StorageInfo(Box::new(t)))) .mobile(true), ); -- 2.47.3