[−][src]Trait rustc_ap_rustc_data_structures::undo_log::UndoLogs
A trait which allows undo actions (T
) to be pushed which can be used to rollback actio at a
later time if needed.
The undo actions themselves are opaque to UndoLogs
, only specified Rollback
implementations
need to know what an action is and how to reverse it.
Required methods
fn num_open_snapshots(&self) -> usize
How many open snapshots this undo log currently has
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.
fn clear(&mut self)
Removes all items from the undo log.
Provided methods
fn in_snapshot(&self) -> bool
True if a snapshot has started, false otherwise
fn extend<I>(&mut self, undos: I) where
I: IntoIterator<Item = T>,
I: IntoIterator<Item = T>,
Extends the undo log with many undos.
Implementations on Foreign Types
impl<'a, T, U> UndoLogs<T> for &'a mut U where
U: UndoLogs<T>,
[src]
U: UndoLogs<T>,
fn in_snapshot(&self) -> bool
[src]
fn num_open_snapshots(&self) -> usize
[src]
fn push(&mut self, undo: T)
[src]
fn clear(&mut self)
[src]
fn extend<I>(&mut self, undos: I) where
I: IntoIterator<Item = T>,
&'a mut U: Sized,
[src]
I: IntoIterator<Item = T>,
&'a mut U: Sized,