pub struct IsizeCOSetBuilder { /* private fields */ }Expand description
Concurrent write-side builder for IsizeCOSet.
Insertions are expected O(log n) through crossbeam_skiplist.
No merging is performed during insertion; normalization happens once
in seal.
Implementations§
Source§impl IsizeCOSetBuilder
impl IsizeCOSetBuilder
Sourcepub fn insert(&self, iv: IsizeCO)
pub fn insert(&self, iv: IsizeCO)
Inserts one interval into the builder.
This method is safe to call concurrently through shared references.
Identical intervals are deduplicated by the underlying SkipSet.
Sourcepub fn seal(self) -> IsizeCOSet
pub fn seal(self) -> IsizeCOSet
Consumes the builder and returns a canonical immutable set.
The merge process is linear over the sorted skip-list iterator:
- maintain one pending interval
cur; - if the next interval overlaps or is adjacent, replace
curwith its convex hull; - otherwise, push
curand start a new pending interval; - finally, push the last pending interval.
Trait Implementations§
Source§impl Debug for IsizeCOSetBuilder
impl Debug for IsizeCOSetBuilder
Source§impl Default for IsizeCOSetBuilder
impl Default for IsizeCOSetBuilder
Source§fn default() -> IsizeCOSetBuilder
fn default() -> IsizeCOSetBuilder
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl !Freeze for IsizeCOSetBuilder
impl !RefUnwindSafe for IsizeCOSetBuilder
impl Send for IsizeCOSetBuilder
impl Sync for IsizeCOSetBuilder
impl Unpin for IsizeCOSetBuilder
impl UnsafeUnpin for IsizeCOSetBuilder
impl !UnwindSafe for IsizeCOSetBuilder
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