TwoMergeIterator

Struct TwoMergeIterator 

Source
pub struct TwoMergeIterator<A: StorageIterator, B: StorageIterator> { /* private fields */ }
Expand description

Merges two iterators of different types into one. If the two iterators have the same key, only produce the key once and prefer the entry from A.

Implementations§

Source§

impl<A: 'static + StorageIterator, B: 'static + for<'a> StorageIterator<KeyType<'a> = A::KeyType<'a>>> TwoMergeIterator<A, B>

Source

pub fn create(a: A, b: B) -> Result<Self>

Trait Implementations§

Source§

impl<A: 'static + StorageIterator, B: 'static + for<'a> StorageIterator<KeyType<'a> = A::KeyType<'a>>> StorageIterator for TwoMergeIterator<A, B>

Source§

type KeyType<'a> = <A as StorageIterator>::KeyType<'a>

Source§

fn key(&self) -> Self::KeyType<'_>

Get the current key.
Source§

fn value(&self) -> &[u8]

Get the current value.
Source§

fn is_valid(&self) -> bool

Check if the current iterator is valid.
Source§

fn next(&mut self) -> Result<()>

Move to the next position.
Source§

fn num_active_iterators(&self) -> usize

Number of underlying active iterators for this iterator.

Auto Trait Implementations§

§

impl<A, B> Freeze for TwoMergeIterator<A, B>
where A: Freeze, B: Freeze,

§

impl<A, B> RefUnwindSafe for TwoMergeIterator<A, B>

§

impl<A, B> Send for TwoMergeIterator<A, B>
where A: Send, B: Send,

§

impl<A, B> Sync for TwoMergeIterator<A, B>
where A: Sync, B: Sync,

§

impl<A, B> Unpin for TwoMergeIterator<A, B>
where A: Unpin, B: Unpin,

§

impl<A, B> UnwindSafe for TwoMergeIterator<A, B>
where A: UnwindSafe, B: 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> 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> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. 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.