Skip to main content

SubsetDifference

Struct SubsetDifference 

Source
pub struct SubsetDifference {
    pub u_mask_zero_bits: u8,
    pub uv: u32,
}
Expand description

A parsed Explicit-Subset-Difference entry per Common spec §3.2.5.1.5, i.e. one row of the Explicit-Subset-Difference Record. The u_mask is the first byte (number of low-order zero bits in the full 32-bit m_u); uv is the 32-bit uv number itself.

The v_mask is derived from uv per Common spec §3.2.3 (the while ((uv & ~v_mask) == 0) v_mask <<= 1 C snippet).

Fields§

§u_mask_zero_bits: u8

Number of trailing zero bits in the 32-bit m_u mask — i.e. m_u = 0xFFFFFFFF << u_mask_zero_bits.

§uv: u32

The 32-bit uv number itself.

Implementations§

Source§

impl SubsetDifference

Source

pub fn u_mask(&self) -> u32

Expand u_mask_zero_bits into the full 32-bit m_u.

Source

pub fn v_mask(&self) -> u32

Derive m_v from uv per Common spec §3.2.3 (“the mask for v is given by the first lower-order 1-bit in the uv number. That bit, and all lower-order 0-bits, are zero bits in the ‘v’ mask.”). The spec’s reference C code is:

long v_mask = 0xFFFFFFFF;
while ((uv & ~v_mask) == 0) v_mask <<= 1;

i.e. the zero region of m_v is trailing_zeros(uv) + 1 bits wide — the lowest-order 1-bit AND every 0-bit below it.

Trait Implementations§

Source§

impl Clone for SubsetDifference

Source§

fn clone(&self) -> SubsetDifference

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for SubsetDifference

Source§

impl Debug for SubsetDifference

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Eq for SubsetDifference

Source§

impl PartialEq for SubsetDifference

Source§

fn eq(&self, other: &SubsetDifference) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl StructuralPartialEq for SubsetDifference

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.