From 26f03e01f183aa63bac2907033c4f99dd8b8ece3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Kr=C3=B6ning?= Date: Thu, 29 Jan 2026 14:34:46 +0100 Subject: [PATCH 1/2] feat(features): remove `FeatureBits` bounds that are not elaborated --- src/features.rs | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/features.rs b/src/features.rs index 9443069..a426817 100644 --- a/src/features.rs +++ b/src/features.rs @@ -4,10 +4,8 @@ use crate::le128; /// Feature Bits #[doc(alias = "VIRTIO_F")] -pub trait FeatureBits: bitflags::Flags -where - Self: From + AsRef + AsMut, - F: From + AsRef + AsMut, +pub trait FeatureBits: + bitflags::Flags + From + Into + AsRef + AsMut { /// Returns the feature that this feature requires. /// From fd5469a7459f0055940822d45c54e596757b3814 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Kr=C3=B6ning?= Date: Thu, 29 Jan 2026 14:41:43 +0100 Subject: [PATCH 2/2] feat(features): seal `FeatureBits` --- src/features.rs | 7 ++++++- src/lib.rs | 4 ++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/features.rs b/src/features.rs index a426817..e1f9dbe 100644 --- a/src/features.rs +++ b/src/features.rs @@ -1,11 +1,12 @@ //! Feature Bits use crate::le128; +use crate::sealed::Sealed; /// Feature Bits #[doc(alias = "VIRTIO_F")] pub trait FeatureBits: - bitflags::Flags + From + Into + AsRef + AsMut + bitflags::Flags + From + Into + AsRef + AsMut + Sealed { /// Returns the feature that this feature requires. /// @@ -238,6 +239,8 @@ impl AsMut for F { impl FeatureBits for F {} +impl Sealed for F {} + macro_rules! feature_bits { ( $(#[$outer:meta])* @@ -332,6 +335,8 @@ macro_rules! feature_bits { } } + impl $crate::sealed::Sealed for $BitFlags {} + feature_bits! { $($t)* } diff --git a/src/lib.rs b/src/lib.rs index b7c3708..b4152af 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -109,6 +109,10 @@ pub mod pvirtq; pub mod virtq; pub mod vsock; +mod sealed { + pub trait Sealed {} +} + pub use endian_num::{be128, be16, be32, be64, le128, le16, le32, le64, Be, Le}; use num_enum::{FromPrimitive, IntoPrimitive, TryFromPrimitive};