Enum zng_ext_undo::UndoFullOp
source · pub enum UndoFullOp<'r> {
Init {
redo: &'r mut bool,
},
Op(UndoOp),
Info {
info: &'r mut Option<Arc<dyn UndoInfo>>,
},
Merge {
next_data: &'r mut dyn Any,
prev_timestamp: DInstant,
within_undo_interval: bool,
merged: &'r mut bool,
},
}Expand description
Represents a full undo/redo action.
This can be used to implement undo and redo in a single closure. See UNDO.register_full_op and
UNDO.run_full_op for more details.
Variants§
Init
Initialize data in the execution context.
This is called once before the initial Op(UndoOp::Redo) call, it
can be used to skip registering no-ops.
Fields
Op(UndoOp)
Normal undo/redo.
Info
Collect display info.
Fields
Merge
Try merge the next_data onto self data (at the undone state).
Fields
§
next_data: &'r mut dyn AnyClosure data for the next undo action.
The data can be from any full undo closure action, only merge if the data
indicates that is comes from actions that can be covered by the self closure.
§
within_undo_interval: boolIf the prev_timestamp is within the UNDO.undo_interval. Undo actions
can choose to ignore this and merge anyway.
Trait Implementations§
Auto Trait Implementations§
impl<'r> Freeze for UndoFullOp<'r>
impl<'r> !RefUnwindSafe for UndoFullOp<'r>
impl<'r> !Send for UndoFullOp<'r>
impl<'r> !Sync for UndoFullOp<'r>
impl<'r> Unpin for UndoFullOp<'r>
impl<'r> !UnwindSafe for UndoFullOp<'r>
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more