Trait undo::Slot

source ·
pub trait Slot {
    // Required method
    fn on_emit(&mut self, event: Event);
}
Expand description

Handles events.

Examples

let (sender, receiver) = mpsc::channel();
let mut iter = receiver.try_iter();

let mut target = String::new();
let mut record = Record::builder()
    .connect(sender)
    .build();

record.edit(&mut target, Add('a'));
assert_eq!(iter.next(), Some(Event::Undo(true)));
assert_eq!(iter.next(), Some(Event::Saved(false)));
assert_eq!(iter.next(), Some(Event::Index(1)));
assert_eq!(iter.next(), None);

record.undo(&mut target);
assert_eq!(iter.next(), Some(Event::Undo(false)));
assert_eq!(iter.next(), Some(Event::Redo(true)));
assert_eq!(iter.next(), Some(Event::Saved(true)));
assert_eq!(iter.next(), Some(Event::Index(0)));
assert_eq!(iter.next(), None);

Required Methods§

source

fn on_emit(&mut self, event: Event)

Receives an event that describes the state change done to the structures.

Implementations on Foreign Types§

source§

impl Slot for ()

source§

fn on_emit(&mut self, _: Event)

source§

impl Slot for Sender<Event>

source§

fn on_emit(&mut self, event: Event)

source§

impl Slot for SyncSender<Event>

source§

fn on_emit(&mut self, event: Event)

Implementors§

source§

impl<F: FnMut(Event)> Slot for F