pub struct MultiWriter<'a> { /* private fields */ }
Expand description

MultiWriter commits write and condition check operations in one request to achieve transaction like semantics.

Implementations§

source§

impl<'a> MultiWriter<'a>

source

pub fn add_check_version( &mut self, path: &str, version: i32 ) -> Result<(), Error>

Adds operation to check version for node with given path.

Notable behaviors

Effects of changes to data of given path in preceding operations affect this operation.

source

pub fn add_create( &mut self, path: &str, data: &[u8], options: &CreateOptions<'_> ) -> Result<(), Error>

Adds operation to create node with given path and data.

See Client::create for more details.

Notable behaviors

MultiWriteResult::Create::stat could be Stat::is_invalid due to bugs in ZooKeeper server. See ZOOKEEPER-4026 and ZOOKEEPER-4667 for reference.

source

pub fn add_set_data( &mut self, path: &str, data: &[u8], expected_version: Option<i32> ) -> Result<(), Error>

Adds operation to set data for node with given path.

See Client::set_data for more details.

source

pub fn add_delete( &mut self, path: &str, expected_version: Option<i32> ) -> Result<(), Error>

Adds operation to delete node with given path.

See Client::delete for more details.

source

pub fn commit( &mut self ) -> impl Future<Output = Result<Vec<MultiWriteResult>, MultiWriteError>> + Send + 'a

Commits multiple operations in one request to write transactionally.

Notable behaviors

Failure of individual operation will fail whole request and commit no effect in server.

Notable errors
source

pub fn abort(&mut self)

Clears collected operations.

Auto Trait Implementations§

§

impl<'a> !RefUnwindSafe for MultiWriter<'a>

§

impl<'a> Send for MultiWriter<'a>

§

impl<'a> Sync for MultiWriter<'a>

§

impl<'a> Unpin for MultiWriter<'a>

§

impl<'a> !UnwindSafe for MultiWriter<'a>

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere 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 Twhere 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, U> TryFrom<U> for Twhere U: Into<T>,

§

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 Twhere U: TryFrom<T>,

§

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.