pub struct AsyncVersionedMapsTransaction<'tx, 'engine, S>where
S: AsyncStore + AsyncManifestStore + AsyncTransactionalStore,
<S as AsyncStore>::Error: Send + Sync,
<S as AsyncManifestStore>::Error: Send + Sync,{ /* private fields */ }Expand description
Managed-map facade over one strict async engine transaction.
All staged map heads, immutable version roots, and content-addressed nodes
are committed together by the owning super::transaction::AsyncProllyTransaction.
Implementations§
Source§impl<'tx, 'engine, S> AsyncVersionedMapsTransaction<'tx, 'engine, S>where
S: AsyncStore + AsyncManifestStore + AsyncTransactionalStore,
<S as AsyncStore>::Error: Send + Sync,
<S as AsyncManifestStore>::Error: Send + Sync,
impl<'tx, 'engine, S> AsyncVersionedMapsTransaction<'tx, 'engine, S>where
S: AsyncStore + AsyncManifestStore + AsyncTransactionalStore,
<S as AsyncStore>::Error: Send + Sync,
<S as AsyncManifestStore>::Error: Send + Sync,
Sourcepub fn timestamp_millis(&self) -> u64
pub fn timestamp_millis(&self) -> u64
Timestamp applied to every managed root staged by this transaction.
Sourcepub async fn head(
&self,
map_id: impl AsRef<[u8]>,
) -> Result<Option<MapVersion>, Error>
pub async fn head( &self, map_id: impl AsRef<[u8]>, ) -> Result<Option<MapVersion>, Error>
Load the staged or original head for one map.
Sourcepub async fn get(
&self,
map_id: impl AsRef<[u8]>,
key: &[u8],
) -> Result<Option<Vec<u8>>, Error>
pub async fn get( &self, map_id: impl AsRef<[u8]>, key: &[u8], ) -> Result<Option<Vec<u8>>, Error>
Read one key from a staged or original map head.
Sourcepub async fn apply(
&self,
map_id: impl AsRef<[u8]>,
mutations: Vec<Mutation>,
) -> Result<MapVersion, Error>
pub async fn apply( &self, map_id: impl AsRef<[u8]>, mutations: Vec<Mutation>, ) -> Result<MapVersion, Error>
Apply a logical mutation batch to one map inside this transaction.
Sourcepub async fn apply_if(
&self,
map_id: impl AsRef<[u8]>,
expected: Option<&MapVersionId>,
mutations: Vec<Mutation>,
) -> Result<VersionedMapUpdate, Error>
pub async fn apply_if( &self, map_id: impl AsRef<[u8]>, expected: Option<&MapVersionId>, mutations: Vec<Mutation>, ) -> Result<VersionedMapUpdate, Error>
Conditionally apply mutations when the staged/original head matches.
Sourcepub async fn restore_if(
&self,
map_id: impl AsRef<[u8]>,
expected: Option<&MapVersionId>,
target: &MapVersionId,
) -> Result<VersionedMapUpdate, Error>
pub async fn restore_if( &self, map_id: impl AsRef<[u8]>, expected: Option<&MapVersionId>, target: &MapVersionId, ) -> Result<VersionedMapUpdate, Error>
Move one managed map head to a retained immutable version inside the owning strict transaction.
This variant lets callers atomically couple a restore with other managed maps such as audit/commit logs. The target catalog entry is included in the transaction read set and its tree is rehashed before publication.
Sourcepub async fn put(
&self,
map_id: impl AsRef<[u8]>,
key: impl Into<Vec<u8>>,
value: impl Into<Vec<u8>>,
) -> Result<MapVersion, Error>
pub async fn put( &self, map_id: impl AsRef<[u8]>, key: impl Into<Vec<u8>>, value: impl Into<Vec<u8>>, ) -> Result<MapVersion, Error>
Put one key in one managed map.
Sourcepub async fn delete(
&self,
map_id: impl AsRef<[u8]>,
key: impl Into<Vec<u8>>,
) -> Result<MapVersion, Error>
pub async fn delete( &self, map_id: impl AsRef<[u8]>, key: impl Into<Vec<u8>>, ) -> Result<MapVersion, Error>
Delete one key from one managed map.
Sourcepub async fn edit(
&self,
map_id: impl AsRef<[u8]>,
edit: impl FnOnce(&mut VersionedMapEditor),
) -> Result<MapVersion, Error>
pub async fn edit( &self, map_id: impl AsRef<[u8]>, edit: impl FnOnce(&mut VersionedMapEditor), ) -> Result<MapVersion, Error>
Collect and apply several edits to one managed map.
Auto Trait Implementations§
impl<'tx, 'engine, S> Freeze for AsyncVersionedMapsTransaction<'tx, 'engine, S>where
&'tx AsyncProllyTransaction<'engine, S>: Freeze,
impl<'tx, 'engine, S> RefUnwindSafe for AsyncVersionedMapsTransaction<'tx, 'engine, S>where
&'tx AsyncProllyTransaction<'engine, S>: RefUnwindSafe,
impl<'tx, 'engine, S> Send for AsyncVersionedMapsTransaction<'tx, 'engine, S>where
&'tx AsyncProllyTransaction<'engine, S>: Send,
impl<'tx, 'engine, S> Sync for AsyncVersionedMapsTransaction<'tx, 'engine, S>where
&'tx AsyncProllyTransaction<'engine, S>: Sync,
impl<'tx, 'engine, S> Unpin for AsyncVersionedMapsTransaction<'tx, 'engine, S>where
&'tx AsyncProllyTransaction<'engine, S>: Unpin,
impl<'tx, 'engine, S> UnsafeUnpin for AsyncVersionedMapsTransaction<'tx, 'engine, S>where
&'tx AsyncProllyTransaction<'engine, S>: UnsafeUnpin,
impl<'tx, 'engine, S> UnwindSafe for AsyncVersionedMapsTransaction<'tx, 'engine, S>where
&'tx AsyncProllyTransaction<'engine, S>: UnwindSafe,
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
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