pub struct TableDBTransaction { /* private fields */ }Expand description
A TableDB transaction Atomically commits a group of writes or deletes to the TableDB
Implementations§
Source§impl TableDBTransaction
impl TableDBTransaction
Sourcepub async fn commit(self) -> VeilidAPIResult<()>
pub async fn commit(self) -> VeilidAPIResult<()>
Commit the transaction. Performs all actions atomically.
Consumes the transaction handle; committing an already-completed clone errors with “transaction already completed”. An empty transaction commits as a no-op. Blocks on the serialized commit lock and the on-disk write.
Errors with VeilidAPIError::Generic if this transaction (or a clone) was already committed or rolled back, or if the atomic backing-store write fails (the buffered writes are then lost).
Sourcepub fn rollback(self)
pub fn rollback(self)
Rollback the transaction. Does nothing to the TableDB.
Consumes the transaction handle and discards the buffered writes locally without blocking.
Sourcepub async fn store(
&self,
col: u32,
key: &[u8],
value: &[u8],
) -> VeilidAPIResult<()>
pub async fn store( &self, col: u32, key: &[u8], value: &[u8], ) -> VeilidAPIResult<()>
Store a key with a value in a column in the TableDB
Buffers the write into the transaction without touching disk; errors if the transaction is already committed or rolled back.
Errors with VeilidAPIError::Generic if col is at or above the opened column count, or if this transaction (or a clone) was already committed or rolled back.
Sourcepub async fn store_json<T>(
&self,
col: u32,
key: &[u8],
value: &T,
) -> VeilidAPIResult<()>where
T: Serialize,
pub async fn store_json<T>(
&self,
col: u32,
key: &[u8],
value: &T,
) -> VeilidAPIResult<()>where
T: Serialize,
Store a key in json format with a value in a column in the TableDB
Buffers the write into the transaction without touching disk; errors if the transaction is already committed or rolled back.
Errors with VeilidAPIError::Internal if value fails to JSON-serialize, otherwise the same errors as store.
Sourcepub async fn delete(&self, col: u32, key: &[u8]) -> VeilidAPIResult<()>
pub async fn delete(&self, col: u32, key: &[u8]) -> VeilidAPIResult<()>
Delete key with from a column in the TableDB
Buffers the delete into the transaction without touching disk; errors if the transaction is already committed or rolled back.
Errors with VeilidAPIError::Generic if col is at or above the opened column count, or if this transaction (or a clone) was already committed or rolled back.
Trait Implementations§
Source§impl Clone for TableDBTransaction
impl Clone for TableDBTransaction
Source§fn clone(&self) -> TableDBTransaction
fn clone(&self) -> TableDBTransaction
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl !RefUnwindSafe for TableDBTransaction
impl !UnwindSafe for TableDBTransaction
impl Freeze for TableDBTransaction
impl Send for TableDBTransaction
impl Sync for TableDBTransaction
impl Unpin for TableDBTransaction
impl UnsafeUnpin for TableDBTransaction
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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>
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>
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 more