diff --git a/rust/pvimg/src/lib.rs b/rust/pvimg/src/lib.rs index 5d229eb4..4685dc44 100644 --- a/rust/pvimg/src/lib.rs +++ b/rust/pvimg/src/lib.rs @@ -40,8 +40,8 @@ pub mod uvdata { EffectiveControlFlags, EnvelopeSeHdrV1, FlagData, FlagState, FlagsOverride, IntoEnumIterator, KeyExchangeTrait, SeH, SeHdr, SeHdrAadV1, SeHdrBinV1, SeHdrBuilder, SeHdrControlFlags, SeHdrControlFlagsModel, SeHdrData, SeHdrDataV1, SeHdrDataV2, SeHdrFlag, - SeHdrPlain, SeHdrVersion, SeHdrVersioned, SeTarget, UvDataPlainTrait, UvDataTrait, - UvKeyHashesV1, + SeHdrPlain, SeHdrVersion, SeHdrVersioned, SeTarget, UnknownFlags, UvDataPlainTrait, + UvDataTrait, UvKeyHashesV1, }; } diff --git a/rust/pvimg/src/pv_utils.rs b/rust/pvimg/src/pv_utils.rs index 8b67ddfc..68d68f36 100644 --- a/rust/pvimg/src/pv_utils.rs +++ b/rust/pvimg/src/pv_utils.rs @@ -21,7 +21,7 @@ pub use se_hdr::{ ComponentMetadataV1, ControlFlagTrait, EffectiveControlFlags, EnvelopeSeHdrV1, FlagData, FlagState, FlagsOverride, IntoEnumIterator, SeH, SeHdr, SeHdrAadV1, SeHdrBinV1, SeHdrBuilder, SeHdrControlFlags, SeHdrControlFlagsModel, SeHdrData, SeHdrDataV1, SeHdrDataV2, SeHdrFlag, - SeHdrPlain, SeHdrVersion, SeHdrVersioned, SeTarget, + SeHdrPlain, SeHdrVersion, SeHdrVersioned, SeTarget, UnknownFlags, }; pub use secured_comp::{ComponentTrait, SecuredComponent, SecuredComponentBuilder}; pub use serializing::{bytesize, serialize_to_bytes}; diff --git a/rust/pvimg/src/pv_utils/se_hdr.rs b/rust/pvimg/src/pv_utils/se_hdr.rs index 0c6a8405..5a8dfece 100644 --- a/rust/pvimg/src/pv_utils/se_hdr.rs +++ b/rust/pvimg/src/pv_utils/se_hdr.rs @@ -19,5 +19,5 @@ pub use flags::{ ControlFlagTrait, EffectiveControlFlags, FlagData, FlagState, FlagsOverride, SeHdrControlFlags, SeHdrControlFlagsModel, SeHdrFlag, SeTarget, }; -pub use generic_flags::IntoEnumIterator; +pub use generic_flags::{IntoEnumIterator, UnknownFlags}; pub use hdr_v1::SeHdrAadV1; diff --git a/rust/pvimg/src/pv_utils/se_hdr/generic_flags.rs b/rust/pvimg/src/pv_utils/se_hdr/generic_flags.rs index e9d71bb1..e85819d1 100644 --- a/rust/pvimg/src/pv_utils/se_hdr/generic_flags.rs +++ b/rust/pvimg/src/pv_utils/se_hdr/generic_flags.rs @@ -366,9 +366,17 @@ impl UnknownFlags { /// /// # Examples /// - /// ```ignore + /// ``` + /// use pv::misc::Msb0Flags64; + /// use pvimg::uvdata::UnknownFlags; + /// + /// // Create UnknownFlags with bit 5 set + /// let flags = Msb0Flags64::from(1u64 << (63 - 5)); + /// let unknown_flags = UnknownFlags::from_bits(flags); + /// /// // Using a raw bit position - /// unknown_flags.contains(5u8); + /// assert!(unknown_flags.contains(5u8)); + /// assert!(!unknown_flags.contains(10u8)); /// ``` #[must_use] pub fn contains(&self, position: u8) -> bool { @@ -433,12 +441,18 @@ impl EffectiveControlFlags { /// /// # Examples /// - /// ```ignore - /// // Using a flag - /// flags.has(SeHdrFlag::PckmoAes); + /// ``` + /// use pvimg::uvdata::{SeHdrControlFlagsModel, SeHdrFlag, SeTarget}; /// - /// // Using a raw bit position - /// flags.has(5u8); + /// // Get default flags for V1 + /// let pcf_v1 = SeHdrControlFlagsModel::pcf_for_target(SeTarget::V1Max); + /// let flags = pcf_v1.with_overrides(&Default::default()).unwrap(); + /// + /// // Using a flag + /// assert!(flags.has(SeHdrFlag::PckmoAes)); + /// + /// // Using a raw bit position (PckmoAes is at bit 57) + /// assert!(flags.has(57u8)); /// ``` pub fn has(&self, position: P) -> bool { let bit_pos = position.into_bit_position();