pub struct AboveExSet { /* private fields */ }Implementations§
Source§impl AboveExSet
impl AboveExSet
Sourcepub fn from<I: IntoIterator<Item = u64>>(max: u64, iter: I) -> Self
pub fn from<I: IntoIterator<Item = u64>>(max: u64, iter: I) -> Self
Creates a new instance from the highest contiguous event, and a sequence of extra events.
§Examples
use threshold::*;
let above_exset = AboveExSet::from(0, vec![2, 4, 5]);
assert!(!above_exset.is_event(1));
assert!(above_exset.is_event(2));
assert!(!above_exset.is_event(3));
assert!(above_exset.is_event(4));
assert!(above_exset.is_event(5));
assert!(!above_exset.is_event(6));Sourcepub fn missing_below(&self, ceil: u64) -> impl Iterator<Item = u64> + '_
pub fn missing_below(&self, ceil: u64) -> impl Iterator<Item = u64> + '_
Returns a set of events that: 1) are below ceil (not including ceil)
and 2) are not part of AboveExSet.
Trait Implementations§
Source§impl Clone for AboveExSet
impl Clone for AboveExSet
Source§fn clone(&self) -> AboveExSet
fn clone(&self) -> AboveExSet
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for AboveExSet
impl Debug for AboveExSet
Source§impl Default for AboveExSet
impl Default for AboveExSet
Source§fn default() -> AboveExSet
fn default() -> AboveExSet
Returns the “default value” for a type. Read more
Source§impl<'de> Deserialize<'de> for AboveExSet
impl<'de> Deserialize<'de> for AboveExSet
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl EventSet for AboveExSet
impl EventSet for AboveExSet
Source§fn next_event(&mut self) -> u64
fn next_event(&mut self) -> u64
Generates the next event. There should be no extras when calling this.
§Examples
use threshold::*;
let mut above_exset = AboveExSet::new();
assert_eq!(above_exset.next_event(), 1);
assert_eq!(above_exset.next_event(), 2);Source§fn add_event(&mut self, event: u64) -> bool
fn add_event(&mut self, event: u64) -> bool
Adds an event to the set.
Returns true if it’s a new event.
§Examples
use threshold::*;
let mut above_exset = AboveExSet::new();
above_exset.add_event(1);
assert!(above_exset.is_event(1));
assert!(!above_exset.is_event(2));
above_exset.add_event(3);
assert!(above_exset.is_event(1));
assert!(!above_exset.is_event(2));
assert!(above_exset.is_event(3));
above_exset.add_event(2);
assert!(above_exset.is_event(1));
assert!(above_exset.is_event(2));
assert!(above_exset.is_event(3));Source§fn add_event_range(&mut self, start: u64, end: u64) -> bool
fn add_event_range(&mut self, start: u64, end: u64) -> bool
Adds a range of events to the set.
Source§fn is_event(&self, event: u64) -> bool
fn is_event(&self, event: u64) -> bool
Checks if an event is part of the set.
§Examples
use threshold::*;
let mut above_exset = AboveExSet::new();
let event = above_exset.next_event();
assert!(above_exset.is_event(event));
above_exset.add_event(3);
assert!(!above_exset.is_event(2));
assert!(above_exset.is_event(3));Source§fn events(&self) -> (u64, Vec<u64>)
fn events(&self) -> (u64, Vec<u64>)
Returns all events seen as a tuple. The first component is the highest event seen, while the second is a vector with the exceptions (in no specific order).
§Examples
use threshold::*;
let mut above_exset = AboveExSet::new();
above_exset.add_event(1);
assert_eq!(above_exset.events(), (1, vec![]));
above_exset.add_event(3);
assert_eq!(above_exset.events(), (1, vec![3]));
above_exset.add_event(2);
assert_eq!(above_exset.events(), (3, vec![]));
above_exset.add_event(4);
assert_eq!(above_exset.events(), (4, vec![]));
above_exset.add_event(6);
assert_eq!(above_exset.events(), (4, vec![6]));Source§fn frontier(&self) -> u64
fn frontier(&self) -> u64
Returns the frontier (the highest contiguous event seen).
§Examples
use threshold::*;
let mut above_exset = AboveExSet::new();
assert_eq!(above_exset.frontier(), 0);
above_exset.add_event(1);
assert_eq!(above_exset.frontier(), 1);
above_exset.add_event(3);
assert_eq!(above_exset.frontier(), 1);
above_exset.add_event(2);
assert_eq!(above_exset.frontier(), 3);
above_exset.add_event(4);
assert_eq!(above_exset.frontier(), 4);
above_exset.add_event(6);
assert_eq!(above_exset.frontier(), 4);Source§fn join(&mut self, other: &Self)
fn join(&mut self, other: &Self)
Merges other AboveExSet into self.
§Examples
use threshold::*;
let mut above_exset = AboveExSet::new();
above_exset.add_event(1);
above_exset.add_event(3);
above_exset.add_event(4);
assert_eq!(above_exset.events(), (1, vec![3, 4]));
above_exset.join(&AboveExSet::from_event(3));
assert_eq!(above_exset.events(), (1, vec![3, 4]));
above_exset.join(&AboveExSet::from_event(5));
assert_eq!(above_exset.events(), (1, vec![3, 4, 5]));
let mut other = AboveExSet::new();
other.add_event(2);
other.add_event(7);
above_exset.join(&other);
assert_eq!(above_exset.events(), (5, vec![7]));Source§fn event_iter(self) -> Self::EventIter
fn event_iter(self) -> Self::EventIter
Returns a AboveExSet event iterator with all events from lowest to
highest.
§Examples
use threshold::*;
let mut above_exset = AboveExSet::new();
above_exset.add_event(3);
above_exset.add_event(5);
let mut iter = above_exset.event_iter();
assert_eq!(iter.next(), Some(3));
assert_eq!(iter.next(), Some(5));
assert_eq!(iter.next(), None);type EventIter = EventIter
Source§fn subtracted(&self, other: &Self) -> Vec<u64>
fn subtracted(&self, other: &Self) -> Vec<u64>
Return a list of events that remain when
other is subtracted from
self.Source§fn from_event(event: u64) -> Self
fn from_event(event: u64) -> Self
Creates a new instance from
event.Source§fn from_event_range(start: u64, end: u64) -> Self
fn from_event_range(start: u64, end: u64) -> Self
Creates a new instance from a range of events.
Source§fn from_events<I: IntoIterator<Item = u64>>(iter: I) -> Self
fn from_events<I: IntoIterator<Item = u64>>(iter: I) -> Self
Creates a new instance from several
events.Source§impl PartialEq for AboveExSet
impl PartialEq for AboveExSet
Source§impl Serialize for AboveExSet
impl Serialize for AboveExSet
impl Eq for AboveExSet
impl StructuralPartialEq for AboveExSet
Auto Trait Implementations§
impl Freeze for AboveExSet
impl RefUnwindSafe for AboveExSet
impl Send for AboveExSet
impl Sync for AboveExSet
impl Unpin for AboveExSet
impl UnwindSafe for AboveExSet
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