Trait rustc_ap_rustc_data_structures::undo_log::UndoLogs [−][src]
pub trait UndoLogs<T> { fn num_open_snapshots(&self) -> usize; fn push(&mut self, undo: T); fn clear(&mut self); fn in_snapshot(&self) -> bool { ... } fn extend<I>(&mut self, undos: I)
where
I: IntoIterator<Item = T>, { ... } }
Expand description
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
[src]
Expand description
How many open snapshots this undo log currently has
fn push(&mut self, undo: T)
[src]
Expand description
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)
[src]
Expand description
Removes all items from the undo log.
Provided methods
fn in_snapshot(&self) -> bool
[src]
Expand description
True if a snapshot has started, false otherwise
fn extend<I>(&mut self, undos: I) where
I: IntoIterator<Item = T>,
[src]
I: IntoIterator<Item = T>,
Expand description
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]
impl<'a, T, U> UndoLogs<T> for &'a mut U where
U: UndoLogs<T>,
[src]pub fn in_snapshot(&self) -> bool
[src]
pub fn num_open_snapshots(&self) -> usize
[src]
pub fn push(&mut self, undo: T)
[src]
pub fn clear(&mut self)
[src]
pub 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,