Struct mz_persist_client::iter::PartRef
source · struct PartRef<'a, KV, T: Timestamp, D> {
next_kvt: Reverse<Option<(KV, T, D)>>,
part_index: usize,
row_index: &'a mut PartIndices,
last_in_run: bool,
_phantom: PhantomData<D>,
}
Expand description
This is used as a max-heap entry: the ordering of the fields is important!
Fields§
§next_kvt: Reverse<Option<(KV, T, D)>>
The smallest KVT that might be emitted from this run in the future. This is reverse-sorted: Nones will sort largest (and be popped first on the heap) and smaller keys will be popped before larger keys.
part_index: usize
The index of the corresponding part within the ConsolidatingIter’s list of parts.
row_index: &'a mut PartIndices
The index of the next row within that part. This is a mutable pointer to long-lived state; we must only advance this index once we’ve rolled any rows before this index into our state.
last_in_run: bool
Whether / not the iterator for the part is the last in its run, or whether there may be iterators for the same part in the future.
_phantom: PhantomData<D>
Implementations§
source§impl<'a, KV: Ord, T: Timestamp + Codec64 + Lattice, D: Codec64 + Semigroup> PartRef<'a, KV, T, D>
impl<'a, KV: Ord, T: Timestamp + Codec64 + Lattice, D: Codec64 + Semigroup> PartRef<'a, KV, T, D>
fn update_peek<Sort: RowSort<T, D, KV<'a> = KV>>( &mut self, part: &'a Sort::Updates, filter: &FetchBatchFilter<T>, )
fn pop<Sort: RowSort<T, D, KV<'a> = KV>>( &mut self, from: &[&'a Sort::Updates], filter: &FetchBatchFilter<T>, ) -> Option<((usize, usize), Sort::KV<'a>, T, D)>
Trait Implementations§
source§impl<'a, KV: Ord, T: Ord + Timestamp, D: Ord> Ord for PartRef<'a, KV, T, D>
impl<'a, KV: Ord, T: Ord + Timestamp, D: Ord> Ord for PartRef<'a, KV, T, D>
1.21.0 · source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Compares and returns the maximum of two values. Read more
source§impl<'a, KV: PartialEq, T: PartialEq + Timestamp, D: PartialEq> PartialEq for PartRef<'a, KV, T, D>
impl<'a, KV: PartialEq, T: PartialEq + Timestamp, D: PartialEq> PartialEq for PartRef<'a, KV, T, D>
source§impl<'a, KV: PartialOrd, T: PartialOrd + Timestamp, D: PartialOrd> PartialOrd for PartRef<'a, KV, T, D>
impl<'a, KV: PartialOrd, T: PartialOrd + Timestamp, D: PartialOrd> PartialOrd for PartRef<'a, KV, T, D>
impl<'a, KV: Eq, T: Eq + Timestamp, D: Eq> Eq for PartRef<'a, KV, T, D>
impl<'a, KV, T: Timestamp, D> StructuralPartialEq for PartRef<'a, KV, T, D>
Auto Trait Implementations§
impl<'a, KV, T, D> Freeze for PartRef<'a, KV, T, D>
impl<'a, KV, T, D> RefUnwindSafe for PartRef<'a, KV, T, D>
impl<'a, KV, T, D> Send for PartRef<'a, KV, T, D>
impl<'a, KV, T, D> Sync for PartRef<'a, KV, T, D>
impl<'a, KV, T, D> Unpin for PartRef<'a, KV, T, D>
impl<'a, KV, T, D> !UnwindSafe for PartRef<'a, KV, T, D>
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
source§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.source§impl<T> FutureExt for T
impl<T> FutureExt for T
source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T
in a tonic::Request
Creates a shared type from an unshared type.
source§impl<T> Pointable for T
impl<T> Pointable for T
source§impl<P, R> ProtoType<R> for Pwhere
R: RustType<P>,
impl<P, R> ProtoType<R> for Pwhere
R: RustType<P>,
source§fn into_rust(self) -> Result<R, TryFromProtoError>
fn into_rust(self) -> Result<R, TryFromProtoError>
See
RustType::from_proto
.source§fn from_rust(rust: &R) -> P
fn from_rust(rust: &R) -> P
See
RustType::into_proto
.source§impl<'a, S, T> Semigroup<&'a S> for Twhere
T: Semigroup<S>,
impl<'a, S, T> Semigroup<&'a S> for Twhere
T: Semigroup<S>,
source§fn plus_equals(&mut self, rhs: &&'a S)
fn plus_equals(&mut self, rhs: &&'a S)
The method of
std::ops::AddAssign
, for types that do not implement AddAssign
.