Struct ra_ap_rustc_data_structures::undo_log::VecLog
source · pub struct VecLog<T> { /* private fields */ }
Expand description
A basic undo log.
Trait Implementations§
source§impl<T> Snapshots<T> for VecLog<T>
impl<T> Snapshots<T> for VecLog<T>
type Snapshot = Snapshot
source§fn has_changes(&self, snapshot: &<VecLog<T> as Snapshots<T>>::Snapshot) -> bool
fn has_changes(&self, snapshot: &<VecLog<T> as Snapshots<T>>::Snapshot) -> bool
Returns true if
self
has made any changes since snapshot started.source§fn actions_since_snapshot(&self, snapshot: &Snapshot) -> &[T]
fn actions_since_snapshot(&self, snapshot: &Snapshot) -> &[T]
Returns the slice of actions that were taken since the snapshot began.
source§fn start_snapshot(&mut self) -> Snapshot
fn start_snapshot(&mut self) -> Snapshot
Starts a new snapshot. That snapshot must eventually either be committed via a call to
commit or rollback via rollback_to. Snapshots can be nested (i.e., you can start a snapshot
whilst another snapshot is in progress) but you must then commit or rollback the inner
snapshot before attempting to commit or rollback the outer snapshot.
source§impl<T> UndoLogs<T> for VecLog<T>
impl<T> UndoLogs<T> for VecLog<T>
source§fn num_open_snapshots(&self) -> usize
fn num_open_snapshots(&self) -> usize
How many open snapshots this undo log currently has
source§fn push(&mut self, undo: T)
fn push(&mut self, undo: T)
Pushes a new “undo item” onto the undo log. This method is invoked when some action is taken
(e.g., a variable is unified). It records the info needed to reverse that action should an
enclosing snapshot be rolleod back.
source§fn in_snapshot(&self) -> bool
fn in_snapshot(&self) -> bool
True if a snapshot has started, false otherwise
source§fn extend<I>(&mut self, undos: I)where
Self: Sized,
I: IntoIterator<Item = T>,
fn extend<I>(&mut self, undos: I)where
Self: Sized,
I: IntoIterator<Item = T>,
Extends the undo log with many undos.
Auto Trait Implementations§
impl<T> RefUnwindSafe for VecLog<T>where
T: RefUnwindSafe,
impl<T> Send for VecLog<T>where
T: Send,
impl<T> Sync for VecLog<T>where
T: Sync,
impl<T> Unpin for VecLog<T>where
T: Unpin,
impl<T> UnwindSafe for VecLog<T>where
T: UnwindSafe,
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