Skip to main content

VersionedMapsTransaction

Struct VersionedMapsTransaction 

Source
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>

Source

pub fn head( &self, map_id: impl AsRef<[u8]>, ) -> Result<Option<MapVersion>, Error>

Load the staged or original head for one map.

Source

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.

Source

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.

Source

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.

Source

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.

Source

pub fn delete( &self, map_id: impl AsRef<[u8]>, key: impl Into<Vec<u8>>, ) -> Result<MapVersion, Error>

Delete one key from one managed map.

Source

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> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.