[−][src]Crate undo
Provides simple undo-redo functionality with dynamic dispatch.
It is an implementation of the command pattern, where all modifications are done by creating objects of commands that applies the modifications. All commands knows how to undo the changes it applies, and by using the provided data structures it is easy to apply, undo, and redo changes made to a target.
Features
- Command provides the base functionality for all commands.
- Record is a collection of commands and provides the undo-redo functionality.
- A queue wraps a record and extends it with queue functionality.
- A checkpoint wraps a record and extends it with checkpoint functionality.
- Commands can be merged after being applied to the data-structures by implementing the merge method on the command. This allows smaller changes made gradually to be merged into larger operations that can be undone and redone in a single step.
- Configurable display formatting using Display.
- The target can be marked as being saved to disk and the record can track the saved state and notify when it changes.
- The amount of changes being tracked can be configured by the user so only the
N
most recent changes are stored.
If you need more advanced features, check out the redo crate.
Structs
Builder | A builder for a record. |
Checkpoint | A checkpoint wrapper. |
Display | Configurable display formatting of structures. |
Join | A command wrapper used for joining commands. |
Merger | A command wrapper with a specified merge behavior. |
Queue | A command queue wrapper. |
Record | A record of commands. |
Text | A command wrapper with a specified text. |
Enums
Merge | Says if the command should merge with another command. |
Signal | The signal used for communicating state changes. |
Traits
Command | Base functionality for all commands. |
Type Definitions
Result | A specialized Result type for undo-redo operations. |