pub struct VecKeyBatch<K, T, R, O = usize>{
pub layer: VecKeyBatchLayer<K, T, R, O>,
/* private fields */
}Expand description
An immutable collection of update tuples, from a contiguous interval of logical times.
Fields§
§layer: VecKeyBatchLayer<K, T, R, O>Where all the dataz is.
Trait Implementations§
Source§impl<K, T, R, O> Archive for VecKeyBatch<K, T, R, O>
impl<K, T, R, O> Archive for VecKeyBatch<K, T, R, O>
Source§impl<K, T, R, O> Batch for VecKeyBatch<K, T, R, O>
impl<K, T, R, O> Batch for VecKeyBatch<K, T, R, O>
Source§type Timed<T2: Timestamp> = VecKeyBatch<K, T2, R, O>
type Timed<T2: Timestamp> = VecKeyBatch<K, T2, R, O>
A batch type equivalent to
Self, but with timestamp type T instead of Self::Time.Source§type Batcher = MergeBatcher<VecKeyBatch<K, T, R, O>>
type Batcher = MergeBatcher<VecKeyBatch<K, T, R, O>>
A type used to assemble batches from disordered updates.
Source§type Builder = VecKeyBuilder<K, T, R, O>
type Builder = VecKeyBuilder<K, T, R, O>
A type used to assemble batches from ordered update sequences.
Source§fn file_reader(&self) -> Option<Arc<dyn FileReader>>
fn file_reader(&self) -> Option<Arc<dyn FileReader>>
This functions returns the file that can be used to restore the batch’s
contents. Read more
Source§fn dyn_from_tuples(
factories: &Self::Factories,
time: Self::Time,
tuples: &mut Box<DynWeightedPairs<DynPair<Self::Key, Self::Val>, Self::R>>,
) -> Self
fn dyn_from_tuples( factories: &Self::Factories, time: Self::Time, tuples: &mut Box<DynWeightedPairs<DynPair<Self::Key, Self::Val>, Self::R>>, ) -> Self
Assemble an unordered vector of weighted items into a batch.
Source§fn from_batch<BI>(
batch: &BI,
timestamp: &Self::Time,
factories: &Self::Factories,
) -> Self
fn from_batch<BI>( batch: &BI, timestamp: &Self::Time, factories: &Self::Factories, ) -> Self
Creates a new batch as a copy of
batch, using timestamp for all of
the new batch’s timestamps This is useful for adding a timestamp to a
batch, or for converting between different batch implementations
(e.g. writing an in-memory batch to disk). Read moreSource§fn from_arc_batch<BI>(
batch: &Arc<BI>,
timestamp: &Self::Time,
factories: &Self::Factories,
) -> Arc<Self>
fn from_arc_batch<BI>( batch: &Arc<BI>, timestamp: &Self::Time, factories: &Self::Factories, ) -> Arc<Self>
Like
from_batch, but avoids cloning the batch if the output type is identical to the input type.Source§fn from_cursor<C>(
cursor: C,
timestamp: &Self::Time,
factories: &Self::Factories,
key_capacity: usize,
value_capacity: usize,
) -> Self
fn from_cursor<C>( cursor: C, timestamp: &Self::Time, factories: &Self::Factories, key_capacity: usize, value_capacity: usize, ) -> Self
Creates a new batch as a copy of the tuples accessible via
cursor``, using timestamp` for all of the new batch’s timestamps.Source§fn filter(&self, predicate: &dyn Fn(&Self::Key, &Self::Val) -> bool) -> Self
fn filter(&self, predicate: &dyn Fn(&Self::Key, &Self::Val) -> bool) -> Self
Returns elements from
self that satisfy a predicate.Source§fn persisted(&self) -> Option<Self>
fn persisted(&self) -> Option<Self>
If this batch is not on storage, but supports writing itself to storage,
this method writes it to storage and returns the stored version.
fn from_path( _factories: &Self::Factories, _path: &StoragePath, ) -> Result<Self, ReaderError>
Source§impl<K, T, R, O> BatchReader for VecKeyBatch<K, T, R, O>
impl<K, T, R, O> BatchReader for VecKeyBatch<K, T, R, O>
Source§type Cursor<'s> = ValKeyCursor<'s, K, T, R, O>
where
O: 's
type Cursor<'s> = ValKeyCursor<'s, K, T, R, O> where O: 's
The type used to enumerate the batch’s contents.
type Factories = VecKeyBatchFactories<K, T, R>
fn factories(&self) -> Self::Factories
Source§fn approximate_byte_size(&self) -> usize
fn approximate_byte_size(&self) -> usize
The memory or storage size of the batch in bytes. Read more
Source§fn filter_size(&self) -> usize
fn filter_size(&self) -> usize
Number of bytes used as a Bloom filter for Cursor::seek_key_exact. Read more
Source§fn sample_keys<RG>(
&self,
rng: &mut RG,
sample_size: usize,
sample: &mut DynVec<Self::Key>,
)
fn sample_keys<RG>( &self, rng: &mut RG, sample_size: usize, sample: &mut DynVec<Self::Key>, )
Returns a uniform random sample of distincts keys from the batch. Read more
Source§fn push_cursor(
&self,
) -> Box<dyn PushCursor<Self::Key, Self::Val, Self::Time, Self::R> + Send + '_>
fn push_cursor( &self, ) -> Box<dyn PushCursor<Self::Key, Self::Val, Self::Time, Self::R> + Send + '_>
Acquires a PushCursor for the batch’s contents.
Source§fn merge_cursor(
&self,
key_filter: Option<Filter<Self::Key>>,
value_filter: Option<Filter<Self::Val>>,
) -> Box<dyn MergeCursor<Self::Key, Self::Val, Self::Time, Self::R> + Send + '_>
fn merge_cursor( &self, key_filter: Option<Filter<Self::Key>>, value_filter: Option<Filter<Self::Val>>, ) -> Box<dyn MergeCursor<Self::Key, Self::Val, Self::Time, Self::R> + Send + '_>
Acquires a MergeCursor for the batch’s contents.
Source§fn consuming_cursor(
&mut self,
key_filter: Option<Filter<Self::Key>>,
value_filter: Option<Filter<Self::Val>>,
) -> Box<dyn MergeCursor<Self::Key, Self::Val, Self::Time, Self::R> + Send + '_>
fn consuming_cursor( &mut self, key_filter: Option<Filter<Self::Key>>, value_filter: Option<Filter<Self::Val>>, ) -> Box<dyn MergeCursor<Self::Key, Self::Val, Self::Time, Self::R> + Send + '_>
Acquires a merge cursor for the batch’s contents.
Source§fn location(&self) -> BatchLocation
fn location(&self) -> BatchLocation
Where the batch’s data is stored.
Source§fn cache_stats(&self) -> CacheStats
fn cache_stats(&self) -> CacheStats
Storage cache access statistics for this batch only. Read more
Source§fn maybe_contains_key(&self, _hash: u64) -> bool
fn maybe_contains_key(&self, _hash: u64) -> bool
A method that returns either true (possibly in the batch) or false
(definitely not in the batch).
Source§async fn fetch<B>(
&self,
keys: &B,
) -> Option<Box<dyn CursorFactory<Self::Key, Self::Val, Self::Time, Self::R>>>
async fn fetch<B>( &self, keys: &B, ) -> Option<Box<dyn CursorFactory<Self::Key, Self::Val, Self::Time, Self::R>>>
Creates and returns a new batch that is a subset of this one, containing
only the key-value pairs whose keys are in
keys. May also return
None, the default implementation, if the batch doesn’t want to
implement this method. In particular, a batch for which access through
a cursor is fast should return None to avoid the expense of copying
data. Read morefn keys(&self) -> Option<&DynVec<Self::Key>>
Source§impl<K, T, R, O> Builder<VecKeyBatch<K, T, R, O>> for VecKeyBuilder<K, T, R, O>
impl<K, T, R, O> Builder<VecKeyBatch<K, T, R, O>> for VecKeyBuilder<K, T, R, O>
Source§fn with_capacity(
factories: &VecKeyBatchFactories<K, T, R>,
key_capacity: usize,
value_capacity: usize,
) -> Self
fn with_capacity( factories: &VecKeyBatchFactories<K, T, R>, key_capacity: usize, value_capacity: usize, ) -> Self
Creates an empty builder with estimated capacities for keys and
key-value pairs. Only
tuple_capacity >= key_capacity makes sense but
implementations must tolerate contradictory capacity requests.Source§fn push_key_mut(&mut self, key: &mut K)
fn push_key_mut(&mut self, key: &mut K)
Adds key
key.Source§fn push_time_diff(&mut self, time: &T, weight: &R)
fn push_time_diff(&mut self, time: &T, weight: &R)
Adds time-diff pair
(time, weight).Source§fn push_time_diff_mut(&mut self, time: &mut T, weight: &mut R)
fn push_time_diff_mut(&mut self, time: &mut T, weight: &mut R)
Adds time-diff pair
(time, weight).Source§fn done(self) -> VecKeyBatch<K, T, R, O>
fn done(self) -> VecKeyBatch<K, T, R, O>
Completes building and returns the batch.
fn num_keys(&self) -> usize
fn num_tuples(&self) -> usize
Source§fn new_builder(factories: &Output::Factories) -> Self
fn new_builder(factories: &Output::Factories) -> Self
Creates a new builder with an initial capacity of 0.
Source§fn for_merge<'a, B, I>(
factories: &Output::Factories,
batches: I,
location: Option<BatchLocation>,
) -> Self
fn for_merge<'a, B, I>( factories: &Output::Factories, batches: I, location: Option<BatchLocation>, ) -> Self
Creates an empty builder to hold the result of merging
batches. Optionally, location can specify the preferred location for
the result of the merge.Source§fn push_val_mut(&mut self, val: &mut Output::Val)
fn push_val_mut(&mut self, val: &mut Output::Val)
Adds value
val.Source§fn push_diff_mut(&mut self, weight: &mut Output::R)
fn push_diff_mut(&mut self, weight: &mut Output::R)
Adds time-diff pair
(), weight.Source§fn push_val_diff(&mut self, val: &Output::Val, weight: &Output::R)
fn push_val_diff(&mut self, val: &Output::Val, weight: &Output::R)
Adds time-diff pair
(), weight and value val.Source§impl<K, T, R, O> Clone for VecKeyBatch<K, T, R, O>
impl<K, T, R, O> Clone for VecKeyBatch<K, T, R, O>
Source§impl<K, T, R, O> Debug for VecKeyBatch<K, T, R, O>
impl<K, T, R, O> Debug for VecKeyBatch<K, T, R, O>
Source§fn deserialize(
&self,
_deserializer: &mut Deserializer,
) -> Result<VecKeyBatch<K, T, R, O>, <Deserializer as Fallible>::Error>
fn deserialize( &self, _deserializer: &mut Deserializer, ) -> Result<VecKeyBatch<K, T, R, O>, <Deserializer as Fallible>::Error>
Deserializes using the given deserializer
Source§impl<K, T, R, O> Display for VecKeyBatch<K, T, R, O>
impl<K, T, R, O> Display for VecKeyBatch<K, T, R, O>
Source§impl<K, T, R, O> NumEntries for VecKeyBatch<K, T, R, O>
impl<K, T, R, O> NumEntries for VecKeyBatch<K, T, R, O>
Source§const CONST_NUM_ENTRIES: Option<usize> = VecKeyBatchLayer<K, T, R, O>::CONST_NUM_ENTRIES
const CONST_NUM_ENTRIES: Option<usize> = VecKeyBatchLayer<K, T, R, O>::CONST_NUM_ENTRIES
Returns
Some(n) if Self has constant size or None otherwise.Source§fn num_entries_shallow(&self) -> usize
fn num_entries_shallow(&self) -> usize
Returns the number of entries in
self.Source§fn num_entries_deep(&self) -> usize
fn num_entries_deep(&self) -> usize
Recursively computes the number of entries in a container by
calling this method on each entry in
self. Read moreSource§fn serialize(
&self,
_serializer: &mut Serializer,
) -> Result<Self::Resolver, <Serializer as Fallible>::Error>
fn serialize( &self, _serializer: &mut Serializer, ) -> Result<Self::Resolver, <Serializer as Fallible>::Error>
Writes the dependencies for the object and returns a resolver that can create the archived
type.
Source§impl<K, T, R, O> SizeOf for VecKeyBatch<K, T, R, O>where
K: DataTrait + ?Sized,
T: Timestamp,
R: WeightTrait + ?Sized,
O: OrdOffset,
VecKeyBatchLayer<K, T, R, O>: SizeOf,
impl<K, T, R, O> SizeOf for VecKeyBatch<K, T, R, O>where
K: DataTrait + ?Sized,
T: Timestamp,
R: WeightTrait + ?Sized,
O: OrdOffset,
VecKeyBatchLayer<K, T, R, O>: SizeOf,
Source§fn size_of_children(&self, context: &mut Context)
fn size_of_children(&self, context: &mut Context)
Gets the size of all “children” owned by this value, not including the
size of the value itself. Read more
Source§fn size_of_with_context(&self, context: &mut Context)
fn size_of_with_context(&self, context: &mut Context)
Adds the size of the current value to the given
Context,
including both the size of the value itself and all of its childrenAuto Trait Implementations§
impl<K, T, R, O> Freeze for VecKeyBatch<K, T, R, O>
impl<K, T, R, O = usize> !RefUnwindSafe for VecKeyBatch<K, T, R, O>
impl<K, T, R, O> Send for VecKeyBatch<K, T, R, O>
impl<K, T, R, O> Sync for VecKeyBatch<K, T, R, O>
impl<K, T, R, O> Unpin for VecKeyBatch<K, T, R, O>
impl<K, T, R, O = usize> !UnwindSafe for VecKeyBatch<K, T, R, O>
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
Source§impl<T> ArchiveUnsized for Twhere
T: Archive,
impl<T> ArchiveUnsized for Twhere
T: Archive,
Source§type Archived = <T as Archive>::Archived
type Archived = <T as Archive>::Archived
The archived counterpart of this type. Unlike
Archive, it may be unsized. Read moreSource§type MetadataResolver = ()
type MetadataResolver = ()
The resolver for the metadata of this type. Read more
Source§unsafe fn resolve_metadata(
&self,
_: usize,
_: <T as ArchiveUnsized>::MetadataResolver,
_: *mut <<T as ArchiveUnsized>::Archived as ArchivePointee>::ArchivedMetadata,
)
unsafe fn resolve_metadata( &self, _: usize, _: <T as ArchiveUnsized>::MetadataResolver, _: *mut <<T as ArchiveUnsized>::Archived as ArchivePointee>::ArchivedMetadata, )
Creates the archived version of the metadata for this value at the given position and writes
it to the given output. Read more
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<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> CustomError for T
impl<T> CustomError for T
Source§impl<T> DeserializableDyn for Twhere
T: ArchivedDBData,
impl<T> DeserializableDyn for Twhere
T: ArchivedDBData,
Source§impl<F, W, T, D> Deserialize<With<T, W>, D> for F
impl<F, W, T, D> Deserialize<With<T, W>, D> for F
Source§impl<Z> IndexedZSetReader for Z
impl<Z> IndexedZSetReader for Z
Source§fn iter(&self) -> IndexedZSetIterator<'_, Self> ⓘ
fn iter(&self) -> IndexedZSetIterator<'_, Self> ⓘ
Returns an iterator over updates in the indexed Z-set.
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> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Gets the layout of the type.
Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> SerializeDyn for Twhere
T: ArchivedDBData,
impl<T> SerializeDyn for Twhere
T: ArchivedDBData,
fn serialize( &self, serializer: &mut CompositeSerializer<FBufSerializer<FBuf>, FallbackScratch<HeapScratch<65536>, AllocScratch>, SharedSerializeMap>, ) -> Result<usize, <CompositeSerializer<FBufSerializer<FBuf>, FallbackScratch<HeapScratch<65536>, AllocScratch>, SharedSerializeMap> as Fallible>::Error>
Source§impl<T, S> SerializeUnsized<S> for T
impl<T, S> SerializeUnsized<S> for T
Source§impl<T> ToStringFallible for Twhere
T: Display,
impl<T> ToStringFallible for Twhere
T: Display,
Source§fn try_to_string(&self) -> Result<String, TryReserveError>
fn try_to_string(&self) -> Result<String, TryReserveError>
ToString::to_string, but without panic on OOM.
Source§impl<B> WithSnapshot for Bwhere
B: Batch,
impl<B> WithSnapshot for Bwhere
B: Batch,
type Batch = B
fn into_ro_snapshot(self) -> SpineSnapshot<B>
Source§fn ro_snapshot(&self) -> SpineSnapshot<<B as WithSnapshot>::Batch>
fn ro_snapshot(&self) -> SpineSnapshot<<B as WithSnapshot>::Batch>
Returns a read-only, non-merging snapshot of the current trace
state.