pub struct Transaction { /* private fields */ }Expand description
A transaction groups multiple edits for atomic undo/redo.
When a transaction is undone, all its edits are reversed in reverse order. When redone, all edits are applied in original order.
§Example
use reovim_kernel::api::v1::*;
let mut txn = Transaction::new();
txn.push(Edit::insert(Position::new(0, 0), "Hello"));
txn.push(Edit::insert(Position::new(0, 5), " World"));
assert_eq!(txn.len(), 2);
assert!(!txn.is_empty());
// Get inverse for undo
let inverse = txn.inverse();
assert_eq!(inverse.len(), 2);
// Inverse edits are in reverse orderImplementations§
Source§impl Transaction
impl Transaction
Sourcepub fn with_capacity(capacity: usize) -> Self
pub fn with_capacity(capacity: usize) -> Self
Create a transaction with pre-allocated capacity.
Sourcepub fn into_edits(self) -> Vec<Edit>
pub fn into_edits(self) -> Vec<Edit>
Consume the transaction and return the edits.
Trait Implementations§
Source§impl Clone for Transaction
impl Clone for Transaction
Source§fn clone(&self) -> Transaction
fn clone(&self) -> Transaction
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for Transaction
impl Debug for Transaction
Source§impl Default for Transaction
impl Default for Transaction
Source§fn default() -> Transaction
fn default() -> Transaction
Returns the “default value” for a type. Read more
Source§impl From<Edit> for Transaction
impl From<Edit> for Transaction
Source§impl<'a> IntoIterator for &'a Transaction
impl<'a> IntoIterator for &'a Transaction
Auto Trait Implementations§
impl Freeze for Transaction
impl RefUnwindSafe for Transaction
impl Send for Transaction
impl Sync for Transaction
impl Unpin for Transaction
impl UnsafeUnpin for Transaction
impl UnwindSafe for Transaction
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