pub struct VersionedMapsTransaction<'tx, 'engine, S>{ /* private fields */ }Expand description
One strict transaction spanning any number of managed maps.
Use this to atomically update authoritative maps, secondary indexes, and materialized views. All original heads are validated together and every new node, immutable version root, and head movement commits as one backend transaction.
Implementations§
Source§impl<'tx, 'engine, S> VersionedMapsTransaction<'tx, 'engine, S>
impl<'tx, 'engine, S> VersionedMapsTransaction<'tx, 'engine, S>
Sourcepub fn head(
&self,
map_id: impl AsRef<[u8]>,
) -> Result<Option<MapVersion>, Error>
pub fn head( &self, map_id: impl AsRef<[u8]>, ) -> Result<Option<MapVersion>, Error>
Load the staged or original head for one map.
Sourcepub fn get(
&self,
map_id: impl AsRef<[u8]>,
key: &[u8],
) -> Result<Option<Vec<u8>>, Error>
pub 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 fn apply(
&self,
map_id: impl AsRef<[u8]>,
mutations: Vec<Mutation>,
) -> Result<MapVersion, Error>
pub 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 fn apply_if(
&self,
map_id: impl AsRef<[u8]>,
expected: Option<&MapVersionId>,
mutations: Vec<Mutation>,
) -> Result<VersionedMapUpdate, Error>
pub 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 fn put(
&self,
map_id: impl AsRef<[u8]>,
key: impl Into<Vec<u8>>,
value: impl Into<Vec<u8>>,
) -> Result<MapVersion, Error>
pub 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 fn delete(
&self,
map_id: impl AsRef<[u8]>,
key: impl Into<Vec<u8>>,
) -> Result<MapVersion, Error>
pub fn delete( &self, map_id: impl AsRef<[u8]>, key: impl Into<Vec<u8>>, ) -> Result<MapVersion, Error>
Delete one key from one managed map.
Sourcepub fn edit(
&self,
map_id: impl AsRef<[u8]>,
edit: impl FnOnce(&mut VersionedMapEditor),
) -> Result<MapVersion, Error>
pub 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 VersionedMapsTransaction<'tx, 'engine, S>
impl<'tx, 'engine, S> RefUnwindSafe for VersionedMapsTransaction<'tx, 'engine, S>where
S: RefUnwindSafe,
impl<'tx, 'engine, S> Send for VersionedMapsTransaction<'tx, 'engine, S>
impl<'tx, 'engine, S> Sync for VersionedMapsTransaction<'tx, 'engine, S>
impl<'tx, 'engine, S> Unpin for VersionedMapsTransaction<'tx, 'engine, S>
impl<'tx, 'engine, S> UnsafeUnpin for VersionedMapsTransaction<'tx, 'engine, S>
impl<'tx, 'engine, S> UnwindSafe for VersionedMapsTransaction<'tx, 'engine, S>where
S: RefUnwindSafe,
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
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 more