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.

Loading content...

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]

Expand description

Extends the undo log with many undos.

Loading content...

Implementations on Foreign Types

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]

Loading content...

Implementors

impl<T> UndoLogs<T> for NoUndo[src]

pub fn num_open_snapshots(&self) -> usize[src]

pub fn push(&mut self, _undo: T)[src]

pub fn clear(&mut self)[src]

impl<T> UndoLogs<T> for VecLog<T>[src]

pub fn num_open_snapshots(&self) -> usize[src]

pub fn push(&mut self, undo: T)[src]

pub fn clear(&mut self)[src]

Loading content...