pub struct ProvMask { /* private fields */ }Expand description
Exact multi-word input-provenance mask: bit i set means the
carrier transitively depends on graph input i. Replaces the
one-word u64 whose ≥63 saturation aliased every high input
(a real shape — a workload root’s params + shared wires
crossed 64 inputs on 2026-08-03). Self-sizing: set grows the
word vector to the highest observed index, so callers never
plumb an input-count and masks from different programs stay
comparable (absent words read as zero).
Implementations§
Source§impl ProvMask
impl ProvMask
Sourcepub fn all_below(n: usize) -> Self
pub fn all_below(n: usize) -> Self
All bits [0, n) set — the “every input dirty” seed the
engine cone guards start from.
Sourcepub fn clear(&mut self)
pub fn clear(&mut self)
Zero every bit, keeping the allocated words — the per-cycle reset for hot-path change masks (no reallocation once sized).
Sourcepub fn set(&mut self, idx: usize) -> bool
pub fn set(&mut self, idx: usize) -> bool
Set bit idx; returns true when the bit was newly set
(the fixpoint walker’s change signal).
Sourcepub fn union_with(&mut self, other: &Self) -> bool
pub fn union_with(&mut self, other: &Self) -> bool
OR other into self; returns true when any bit was
newly set (the fixpoint walker’s change signal).
Sourcepub fn intersects(&self, other: &Self) -> bool
pub fn intersects(&self, other: &Self) -> bool
Whether any bit is set in both masks.
Trait Implementations§
impl Eq for ProvMask
impl StructuralPartialEq for ProvMask
Auto Trait Implementations§
impl Freeze for ProvMask
impl RefUnwindSafe for ProvMask
impl Send for ProvMask
impl Sync for ProvMask
impl Unpin for ProvMask
impl UnsafeUnpin for ProvMask
impl UnwindSafe for ProvMask
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more