1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
/// The signal sent when the record, the history, or the receiver changes. /// /// When one of these states changes, they will send a corresponding signal to the user. /// For example, if the record can no longer redo any commands, it sends a `Redo(false)` /// signal to tell the user. #[derive(Copy, Clone, Debug, Hash, Ord, PartialOrd, Eq, PartialEq)] pub enum Signal { /// Says if the record can undo. /// /// This signal will be emitted when the records ability to undo changes. Undo(bool), /// Says if the record can redo. /// /// This signal will be emitted when the records ability to redo changes. Redo(bool), /// Says if the receiver is in a saved state. /// /// This signal will be emitted when the record enters or leaves its receivers saved state. Saved(bool), /// Says if the current command has changed. /// /// This signal will be emitted when the cursor has changed. This includes /// when two commands have been merged, in which case `old == new`. Cursor { /// The old cursor. old: usize, /// The new cursor. new: usize, }, /// Says if the current branch has changed. /// /// This is only emitted from `History`. Branch { /// The old branch. old: usize, /// The new branch. new: usize, }, }