pub struct ChangeDelta {
pub lo_word: usize,
pub old_a: Vec<u64>,
pub old_b: Vec<u64>,
pub new_a: Vec<u64>,
pub new_b: Vec<u64>,
}Expand description
The bits one committed update changed, as plane words (aval/bval, the
Wide encoding): lo_word is the plane-word index of old_a[0], so a
windowed update of a huge vector carries only the words it touched. A
bit/part-select event control (LRM 9.4.2) compares the selected bits of
old and new to decide whether its operand changed, and takes an edge
on the select’s least-significant bit.
Fields§
§lo_word: usize§old_a: Vec<u64>§old_b: Vec<u64>§new_a: Vec<u64>§new_b: Vec<u64>Implementations§
Source§impl ChangeDelta
impl ChangeDelta
Sourcepub fn between(old: &FourStateValue, new: &FourStateValue) -> Self
pub fn between(old: &FourStateValue, new: &FourStateValue) -> Self
The delta between two whole values (the narrow inline word and the
wide planes both decode to aval/bval).
Sourcepub fn bit(&self, index: u32) -> Option<((bool, bool), (bool, bool))>
pub fn bit(&self, index: u32) -> Option<((bool, bool), (bool, bool))>
Bit index of the value before and after, as (aval, bval) pairs; a
bit outside the carried words did not change (None).
Sourcepub fn range_changed(&self, lsb: u32, width: u32) -> bool
pub fn range_changed(&self, lsb: u32, width: u32) -> bool
Whether any bit of [lsb, lsb + width) differs, in either plane.
Trait Implementations§
Source§impl Clone for ChangeDelta
impl Clone for ChangeDelta
Source§impl Debug for ChangeDelta
impl Debug for ChangeDelta
Auto Trait Implementations§
impl Freeze for ChangeDelta
impl RefUnwindSafe for ChangeDelta
impl Send for ChangeDelta
impl Sync for ChangeDelta
impl Unpin for ChangeDelta
impl UnsafeUnpin for ChangeDelta
impl UnwindSafe for ChangeDelta
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more