pub struct TransactionalTree<E> { /* private fields */ }Expand description
A transaction that will be applied atomically to the Tree.
Implementations§
Source§impl<E> TransactionalTree<E>where
E: Encryption,
impl<E> TransactionalTree<E>where
E: Encryption,
Sourcepub fn get<K: AsRef<[u8]>>(
&self,
key: K,
) -> Result<Option<IVec>, UnabortableTransactionError>
pub fn get<K: AsRef<[u8]>>( &self, key: K, ) -> Result<Option<IVec>, UnabortableTransactionError>
Get the value associated with a key
Sourcepub fn insert<K, V>(
&self,
key: K,
value: V,
) -> Result<Option<IVec>, UnabortableTransactionError>
pub fn insert<K, V>( &self, key: K, value: V, ) -> Result<Option<IVec>, UnabortableTransactionError>
Set a key to a new value
Sourcepub fn remove<K: AsRef<[u8]>>(
&self,
key: K,
) -> Result<Option<IVec>, UnabortableTransactionError>
pub fn remove<K: AsRef<[u8]>>( &self, key: K, ) -> Result<Option<IVec>, UnabortableTransactionError>
Remove a key
Sourcepub fn apply_batch(
&self,
batch: &Batch,
) -> Result<(), UnabortableTransactionError>
pub fn apply_batch( &self, batch: &Batch, ) -> Result<(), UnabortableTransactionError>
Atomically apply multiple inserts and removals.
Sourcepub fn generate_id(&self) -> Result<u64>
pub fn generate_id(&self) -> Result<u64>
Generate a monotonic ID. Not guaranteed to be contiguous or idempotent, can produce different values in the same transaction in case of conflicts. Written to disk every idgen_persist_interval operations, followed by a blocking flush. During recovery, we take the last recovered generated ID and add 2x the idgen_persist_interval to it. While persisting, if the previous persisted counter wasn’t synced to disk yet, we will do a blocking flush to fsync the latest counter, ensuring that we will never give out the same counter twice.
Auto Trait Implementations§
impl<E> Freeze for TransactionalTree<E>
impl<E> !RefUnwindSafe for TransactionalTree<E>
impl<E> !Send for TransactionalTree<E>
impl<E> !Sync for TransactionalTree<E>
impl<E> Unpin for TransactionalTree<E>
impl<E> !UnwindSafe for TransactionalTree<E>
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