pub struct FallbackWSet<K, R>{ /* private fields */ }Implementations§
Source§impl<K, R> FallbackWSet<K, R>
impl<K, R> FallbackWSet<K, R>
Trait Implementations§
Source§impl<K, R> AddAssignByRef for FallbackWSet<K, R>
impl<K, R> AddAssignByRef for FallbackWSet<K, R>
fn add_assign_by_ref(&mut self, rhs: &Self)
Source§impl<K, R> AddByRef for FallbackWSet<K, R>
impl<K, R> AddByRef for FallbackWSet<K, R>
fn add_by_ref(&self, rhs: &Self) -> Self
Source§impl<K, R> Archive for FallbackWSet<K, R>
impl<K, R> Archive for FallbackWSet<K, R>
Source§impl<K, R> Batch for FallbackWSet<K, R>
impl<K, R> Batch for FallbackWSet<K, R>
Source§type Timed<T: Timestamp> = FallbackKeyBatch<K, T, R>
type Timed<T: Timestamp> = FallbackKeyBatch<K, T, R>
A batch type equivalent to
Self, but with timestamp type T instead of Self::Time.Source§type Batcher = MergeBatcher<FallbackWSet<K, R>>
type Batcher = MergeBatcher<FallbackWSet<K, R>>
A type used to assemble batches from disordered updates.
Source§type Builder = FallbackWSetBuilder<K, R>
type Builder = FallbackWSetBuilder<K, R>
A type used to assemble batches from ordered update sequences.
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.
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
fn from_path( factories: &Self::Factories, path: &StoragePath, ) -> Result<Self, ReaderError>
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§impl<K, R> BatchReader for FallbackWSet<K, R>
impl<K, R> BatchReader for FallbackWSet<K, R>
type Factories = FileWSetFactories<K, R>
Source§type Cursor<'s> = DelegatingCursor<'s, K, dyn DataTyped<Type = ()>, (), R>
type Cursor<'s> = DelegatingCursor<'s, K, dyn DataTyped<Type = ()>, (), R>
The type used to enumerate the batch’s contents.
fn factories(&self) -> Self::Factories
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<GroupFilter<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<GroupFilter<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<GroupFilter<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<GroupFilter<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 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_stats(&self) -> BloomFilterStats
fn filter_stats(&self) -> BloomFilterStats
Statistics of the Bloom filter used by Cursor::seek_key_exact.
The Bloom filter (kept in memory) is used there to quickly check
whether a key might be present in the batch, before doing a
binary tree lookup within the batch to be exactly sure.
The statistics include for example the size in bytes and the hit rate.
Only some kinds of batches use a filter; others should return
BloomFilterStats::default().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 sample_keys<RG>(
&self,
rng: &mut RG,
sample_size: usize,
sample: &mut DynVec<Self::Key>,
)where
RG: Rng,
fn sample_keys<RG>(
&self,
rng: &mut RG,
sample_size: usize,
sample: &mut DynVec<Self::Key>,
)where
RG: Rng,
Returns a uniform random sample of distincts keys from the batch. 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§fn merge_cursor_with_snapshot<'a, S>(
&'a self,
key_filter: Option<Filter<Self::Key>>,
value_filter: Option<GroupFilter<Self::Val>>,
snapshot: &'a Option<Arc<S>>,
) -> Box<dyn MergeCursor<Self::Key, Self::Val, Self::Time, Self::R> + Send + 'a>
fn merge_cursor_with_snapshot<'a, S>( &'a self, key_filter: Option<Filter<Self::Key>>, value_filter: Option<GroupFilter<Self::Val>>, snapshot: &'a Option<Arc<S>>, ) -> Box<dyn MergeCursor<Self::Key, Self::Val, Self::Time, Self::R> + Send + 'a>
Similar to
merge_cursor, but invoked in the context of a spine merger.
Takes the current spine snapshot as an extra argument and uses it to evaluate value_filter precisely.Source§impl<K, R> Builder<FallbackWSet<K, R>> for FallbackWSetBuilder<K, R>
impl<K, R> Builder<FallbackWSet<K, R>> for FallbackWSetBuilder<K, R>
Source§fn with_capacity(
factories: &FallbackWSetFactories<K, R>,
key_capacity: usize,
_value_capacity: usize,
) -> Self
fn with_capacity( factories: &FallbackWSetFactories<K, 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 for_merge<'a, B, I>(
factories: &FallbackWSetFactories<K, R>,
batches: I,
location: Option<BatchLocation>,
) -> Self
fn for_merge<'a, B, I>( factories: &FallbackWSetFactories<K, R>, 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_time_diff(&mut self, time: &(), weight: &R)
fn push_time_diff(&mut self, time: &(), weight: &R)
Adds time-diff pair
(time, weight).Source§fn push_time_diff_mut(&mut self, time: &mut (), weight: &mut R)
fn push_time_diff_mut(&mut self, time: &mut (), weight: &mut R)
Adds time-diff pair
(time, weight).Source§fn push_val_mut(&mut self, val: &mut DynUnit)
fn push_val_mut(&mut self, val: &mut DynUnit)
Adds value
val.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_val_diff(&mut self, val: &DynUnit, weight: &R)
fn push_val_diff(&mut self, val: &DynUnit, weight: &R)
Adds time-diff pair
(), weight and value val.Source§fn push_val_diff_mut(&mut self, val: &mut DynUnit, weight: &mut R)
fn push_val_diff_mut(&mut self, val: &mut DynUnit, weight: &mut R)
Adds time-diff pair
(), weight and value val.Source§fn done(self) -> FallbackWSet<K, R>
fn done(self) -> FallbackWSet<K, R>
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§impl<K, R> Checkpoint for FallbackWSet<K, R>
impl<K, R> Checkpoint for FallbackWSet<K, R>
Source§impl<K, R> Clone for FallbackWSet<K, R>
impl<K, R> Clone for FallbackWSet<K, R>
Source§impl<K, R> Debug for FallbackWSet<K, R>
impl<K, R> Debug for FallbackWSet<K, R>
Source§impl<K, R, D> Deserialize<FallbackWSet<K, R>, D> for Archived<FallbackWSet<K, R>>
impl<K, R, D> Deserialize<FallbackWSet<K, R>, D> for Archived<FallbackWSet<K, R>>
Source§fn deserialize(
&self,
_deserializer: &mut D,
) -> Result<FallbackWSet<K, R>, D::Error>
fn deserialize( &self, _deserializer: &mut D, ) -> Result<FallbackWSet<K, R>, D::Error>
Deserializes using the given deserializer
Source§impl<K, R> DynFilterMap for OrdWSet<K, R>
impl<K, R> DynFilterMap for OrdWSet<K, R>
Source§type DynItemRef<'a> = &'a K
type DynItemRef<'a> = &'a K
A borrowed version of the record type, e.g.,
(&K, &V) for a stream of
(key, value, weight) tuples or &K if the value type is ().fn item_ref<'a>(key: &'a Self::Key, _val: &'a Self::Val) -> Self::DynItemRef<'a>
fn item_ref_keyval(item_ref: Self::DynItemRef<'_>) -> (&Self::Key, &Self::Val)
fn dyn_filter<C: Circuit>( stream: &Stream<C, Self>, filter_func: Box<dyn Fn(Self::DynItemRef<'_>) -> bool>, ) -> Stream<C, Self>
fn dyn_map_generic<C: Circuit, O>( stream: &Stream<C, Self>, output_factories: &O::Factories, map_func: Box<dyn Fn(Self::DynItemRef<'_>, &mut DynPair<O::Key, O::Val>)>, ) -> Stream<C, O>
fn dyn_flat_map_generic<C: Circuit, O>( stream: &Stream<C, Self>, output_factories: &O::Factories, func: Box<dyn FnMut(Self::DynItemRef<'_>, &mut dyn FnMut(&mut O::Key, &mut O::Val))>, ) -> Stream<C, O>
Source§impl<K, R> Neg for FallbackWSet<K, R>where
K: DataTrait + ?Sized,
R: WeightTraitTyped + ?Sized,
R::Type: DBWeight + ZRingValue + NegByRef + Erase<R>,
impl<K, R> Neg for FallbackWSet<K, R>where
K: DataTrait + ?Sized,
R: WeightTraitTyped + ?Sized,
R::Type: DBWeight + ZRingValue + NegByRef + Erase<R>,
Source§impl<K, R> NegByRef for FallbackWSet<K, R>where
K: DataTrait + ?Sized,
R: WeightTraitTyped + ?Sized,
R::Type: DBWeight + ZRingValue + NegByRef + Erase<R>,
impl<K, R> NegByRef for FallbackWSet<K, R>where
K: DataTrait + ?Sized,
R: WeightTraitTyped + ?Sized,
R::Type: DBWeight + ZRingValue + NegByRef + Erase<R>,
fn neg_by_ref(&self) -> Self
Source§impl<K, R> NumEntries for FallbackWSet<K, R>
impl<K, R> NumEntries for FallbackWSet<K, R>
Source§const CONST_NUM_ENTRIES: Option<usize> = None
const CONST_NUM_ENTRIES: Option<usize> = None
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§impl<Other, K, R> PartialEq<Other> for FallbackWSet<K, R>where
K: DataTrait + ?Sized,
R: WeightTrait + ?Sized,
Other: BatchReader<Key = K, Val = DynUnit, R = R, Time = ()>,
impl<Other, K, R> PartialEq<Other> for FallbackWSet<K, R>where
K: DataTrait + ?Sized,
R: WeightTrait + ?Sized,
Other: BatchReader<Key = K, Val = DynUnit, R = R, Time = ()>,
Source§impl<K, R, S> Serialize<S> for FallbackWSet<K, R>
impl<K, R, S> Serialize<S> for FallbackWSet<K, R>
Source§impl<K, R> SizeOf for FallbackWSet<K, R>
impl<K, R> SizeOf for FallbackWSet<K, R>
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 childrenimpl<K, R> Eq for FallbackWSet<K, R>
Auto Trait Implementations§
impl<K, R> Freeze for FallbackWSet<K, R>
impl<K, R> !RefUnwindSafe for FallbackWSet<K, R>
impl<K, R> Send for FallbackWSet<K, R>
impl<K, R> Sync for FallbackWSet<K, R>
impl<K, R> Unpin for FallbackWSet<K, R>
impl<K, R> UnsafeUnpin for FallbackWSet<K, R>
impl<K, R> !UnwindSafe for FallbackWSet<K, R>
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> DeserializableDyn for Twhere
T: ArchivedDBData,
impl<T> DeserializableDyn for Twhere
T: ArchivedDBData,
Source§unsafe fn deserialize_from_bytes_with(
&mut self,
bytes: &[u8],
pos: usize,
deserializer: &mut Deserializer,
)
unsafe fn deserialize_from_bytes_with( &mut self, bytes: &[u8], pos: usize, deserializer: &mut Deserializer, )
Deserialize
self from the given slice and offset. Read moreSource§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<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§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<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<Z> IndexedZSet for Z
impl<Z> IndexedZSet for Z
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<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.
Source§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
Source§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
Source§fn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Source§impl<Z, K> ZSet for Z
impl<Z, K> ZSet for Z
Source§fn weighted_count(&self, sum: &mut <Z as BatchReader>::R)
fn weighted_count(&self, sum: &mut <Z as BatchReader>::R)
Sum of the weights of the elements in the Z-set. Weights can be
negative, so the result can be zero even if the Z-set contains nonzero
weights.