Struct BlockCursor

Source
pub struct BlockCursor<Conf: Config> { /* private fields */ }
Expand description

Block iterator cursor, or position of iterable.

Created by BlockIter::cursor(), used by BlockIter::move_to(). Also can be built from index and DataBlock.

Allows to resume iteration from the last position, even if the source was mutated. Can be used with any BitSetInterface. Default constructed cursor will traverse bitset from the very begin.

§Use-case

This can be used to split long iteration into a few sessions. You may want that in concurrent environment, when you can’t process whole iteration sequence fast, and want not to keep lock on resource all the time you process iteration sequence.

Example: you lock sets, make intersection iterator, read 40 blocks into buffer, take iterator to cursor, unlock sets, process buffer, lock sets, move iterator to cursor, and so on.

Implementations§

Source§

impl<Conf: Config> BlockCursor<Conf>

Source

pub fn start() -> Self

Constructs cursor that points to the start of bitset.

Source

pub fn end() -> Self

Constructs cursor that points to the end of bitset.

Iterator moved to this cursor will always return None.

Trait Implementations§

Source§

impl<Conf: Config> Clone for BlockCursor<Conf>

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<Conf: Config> Default for BlockCursor<Conf>

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl<Conf: Config> From<&DataBlock<<Conf as Config>::DataBitBlock>> for BlockCursor<Conf>

Source§

fn from(block: &DataBlock<Conf::DataBitBlock>) -> Self

Build cursor that points to the block.

Source§

impl<Conf: Config> From<usize> for BlockCursor<Conf>

Source§

fn from(index: usize) -> Self

Build cursor that points to the block, that contains index.

Source§

impl<Conf: Config> Copy for BlockCursor<Conf>

Auto Trait Implementations§

§

impl<Conf> Freeze for BlockCursor<Conf>

§

impl<Conf> RefUnwindSafe for BlockCursor<Conf>
where Conf: RefUnwindSafe,

§

impl<Conf> Send for BlockCursor<Conf>
where Conf: Send,

§

impl<Conf> Sync for BlockCursor<Conf>
where Conf: Sync,

§

impl<Conf> Unpin for BlockCursor<Conf>
where Conf: Unpin,

§

impl<Conf> UnwindSafe for BlockCursor<Conf>
where Conf: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.