Struct linera_views::batch::UnorderedBatch
source · pub struct UnorderedBatch {
pub key_prefix_deletions: Vec<Vec<u8>>,
pub simple_unordered_batch: SimpleUnorderedBatch,
}
Expand description
An unordered batch of deletions and insertions, together with a set of key-prefixes to delete. Key-prefix deletions must happen before the insertions and the deletions.
Fields§
§key_prefix_deletions: Vec<Vec<u8>>
The key-prefix deletions.
simple_unordered_batch: SimpleUnorderedBatch
The batch of deletions and insertions.
Implementations§
source§impl UnorderedBatch
impl UnorderedBatch
sourcepub async fn expand_delete_prefixes<DB: DeletePrefixExpander>(
self,
db: &DB,
) -> Result<SimpleUnorderedBatch, DB::Error>
pub async fn expand_delete_prefixes<DB: DeletePrefixExpander>( self, db: &DB, ) -> Result<SimpleUnorderedBatch, DB::Error>
From an UnorderedBatch
, creates a SimpleUnorderedBatch
that does not contain the
key_prefix_deletions
. This requires accessing the database to eliminate them.
sourcepub async fn expand_colliding_prefix_deletions<DB: DeletePrefixExpander>(
&mut self,
db: &DB,
) -> Result<(), DB::Error>
pub async fn expand_colliding_prefix_deletions<DB: DeletePrefixExpander>( &mut self, db: &DB, ) -> Result<(), DB::Error>
Modifies an UnorderedBatch
so that the key-prefix deletions do not conflict
with subsequent insertions. This may require accessing the database to compute
lists of deleted keys.
Trait Implementations§
source§impl BatchValueWriter<UnorderedBatch> for UnorderedBatchIter
impl BatchValueWriter<UnorderedBatch> for UnorderedBatchIter
source§fn write_next_value(
&mut self,
batch: &mut UnorderedBatch,
batch_size: &mut usize,
) -> Result<bool, Error>
fn write_next_value( &mut self, batch: &mut UnorderedBatch, batch_size: &mut usize, ) -> Result<bool, Error>
Writes the next value (if any) to the batch and updates the batch size accordingly. Read more
source§fn next_batch_size(
&mut self,
batch: &UnorderedBatch,
batch_size: usize,
) -> Result<Option<usize>, Error>
fn next_batch_size( &mut self, batch: &UnorderedBatch, batch_size: usize, ) -> Result<Option<usize>, Error>
Computes the batch size that we would obtain if we wrote the next value (if any)
without consuming the value.
source§impl Default for UnorderedBatch
impl Default for UnorderedBatch
source§fn default() -> UnorderedBatch
fn default() -> UnorderedBatch
Returns the “default value” for a type. Read more
source§impl<'de> Deserialize<'de> for UnorderedBatch
impl<'de> Deserialize<'de> for UnorderedBatch
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
source§impl Serialize for UnorderedBatch
impl Serialize for UnorderedBatch
source§impl SimplifiedBatch for UnorderedBatch
impl SimplifiedBatch for UnorderedBatch
§type Iter = UnorderedBatchIter
type Iter = UnorderedBatchIter
The iterator type used to process values from the batch.
source§fn overhead_size(&self) -> usize
fn overhead_size(&self) -> usize
Returns the overhead size of the batch.
source§fn add_delete(&mut self, key: Vec<u8>)
fn add_delete(&mut self, key: Vec<u8>)
Adds the deletion of key to the batch.
source§fn add_insert(&mut self, key: Vec<u8>, value: Vec<u8>)
fn add_insert(&mut self, key: Vec<u8>, value: Vec<u8>)
Adds the insertion of a key-value pair to the batch.
Auto Trait Implementations§
impl Freeze for UnorderedBatch
impl RefUnwindSafe for UnorderedBatch
impl Send for UnorderedBatch
impl Sync for UnorderedBatch
impl Unpin for UnorderedBatch
impl UnwindSafe for UnorderedBatch
Blanket Implementations§
source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
§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> 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<Choices> CoproductSubsetter<CNil, HNil> for Choices
impl<Choices> CoproductSubsetter<CNil, HNil> for Choices
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<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 moreCreates a shared type from an unshared type.
source§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> MockResults for T
impl<T> MockResults for T
§type Results = T
type Results = T
The mock native type of the results for the
MockInstance
.source§impl<T> Pointable for T
impl<T> Pointable for T
source§impl<M, I> RuntimeMemory<&mut I> for Mwhere
M: RuntimeMemory<I>,
impl<M, I> RuntimeMemory<&mut I> for Mwhere
M: RuntimeMemory<I>,
source§fn read<'instance>(
&self,
instance: &'instance &mut I,
location: GuestPointer,
length: u32,
) -> Result<Cow<'instance, [u8]>, RuntimeError>
fn read<'instance>( &self, instance: &'instance &mut I, location: GuestPointer, length: u32, ) -> Result<Cow<'instance, [u8]>, RuntimeError>
Reads length
bytes from memory from the provided location
.
source§fn write(
&mut self,
instance: &mut &mut I,
location: GuestPointer,
bytes: &[u8],
) -> Result<(), RuntimeError>
fn write( &mut self, instance: &mut &mut I, location: GuestPointer, bytes: &[u8], ) -> Result<(), RuntimeError>
Writes the bytes
to memory at the provided location
.
source§impl<T> Upcastable for T
impl<T> Upcastable for T
source§fn upcast_any_ref(&self) -> &(dyn Any + 'static)
fn upcast_any_ref(&self) -> &(dyn Any + 'static)
upcast ref
source§fn upcast_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn upcast_any_mut(&mut self) -> &mut (dyn Any + 'static)
upcast mut ref