pub struct FieldVersionTracker { /* private fields */ }Expand description
Field version tracker for Pregel execution
Tracks version numbers for each field in the state to determine when nodes should be activated based on their trigger fields.
Implementations§
Source§impl FieldVersionTracker
impl FieldVersionTracker
Sourcepub fn new(num_fields: usize) -> FieldVersionTracker
pub fn new(num_fields: usize) -> FieldVersionTracker
Create a new version tracker for the given number of fields
§Panics
Panics if num_fields is greater than 64 (the maximum number of
fields that can be tracked in a FieldsChanged bitmask).
§Examples
ⓘ
use juncture_core::pregel::scheduler::FieldVersionTracker;
let tracker = FieldVersionTracker::new(5);
assert_eq!(tracker.versions().len(), 5);Sourcepub fn bump_all(&mut self, changed: &FieldsChanged)
pub fn bump_all(&mut self, changed: &FieldsChanged)
Bump all field versions (used when state changes globally)
§Examples
ⓘ
use juncture_core::pregel::scheduler::FieldVersionTracker;
use juncture_core::state::FieldsChanged;
let mut tracker = FieldVersionTracker::new(3);
let changed = FieldsChanged(0b101); // fields 0 and 2 changed
tracker.bump_all(&changed);
assert_eq!(tracker.get(0), 1);
assert_eq!(tracker.get(1), 0);
assert_eq!(tracker.get(2), 1);Sourcepub const fn global_max(&self) -> u64
pub const fn global_max(&self) -> u64
Trait Implementations§
Source§impl Clone for FieldVersionTracker
impl Clone for FieldVersionTracker
Source§fn clone(&self) -> FieldVersionTracker
fn clone(&self) -> FieldVersionTracker
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for FieldVersionTracker
impl RefUnwindSafe for FieldVersionTracker
impl Send for FieldVersionTracker
impl Sync for FieldVersionTracker
impl Unpin for FieldVersionTracker
impl UnsafeUnpin for FieldVersionTracker
impl UnwindSafe for FieldVersionTracker
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