Skip to main content

AstTransaction

Struct AstTransaction 

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

An open transaction over a model.

Dropping one without calling AstTransaction::commit rolls it back: a transaction that goes out of scope unfinished must not leave half its changes behind.

Implementations§

Source§

impl<'a> AstTransaction<'a>

Source

pub fn ast(&mut self) -> &mut Ast

The model under edit.

Mutating calls made through this reference join the transaction rather than committing on their own.

Source

pub fn model(&self) -> &Ast

The model under edit, read-only.

Source

pub fn commit(self) -> Result<Changeset, AstError>

Validate and publish the transaction.

§Errors

AstError::Invariant when a structural invariant fails, in which case the model has been rolled back to its state before begin and no observer was notified. Spec §8.1.

Source

pub fn rollback(self)

Discard every change the transaction made.

Trait Implementations§

Source§

impl Drop for AstTransaction<'_>

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

fn pin_drop(self: Pin<&mut Self>)

🔬This is a nightly-only experimental API. (pin_ergonomics)
Execute the destructor for this type, but different to Drop::drop, it requires self to be pinned. Read more

Auto Trait Implementations§

§

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

§

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

§

impl<'a> Freeze for AstTransaction<'a>

§

impl<'a> Send for AstTransaction<'a>

§

impl<'a> Sync for AstTransaction<'a>

§

impl<'a> Unpin for AstTransaction<'a>

§

impl<'a> UnsafeUnpin for AstTransaction<'a>

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, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

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

fn try_from(value: U) -> Result<T, !>

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.