2个版本
0.1.1 | 2021年11月22日 |
---|---|
0.1.0 | 2021年10月22日 |
1114 在 数据结构
11KB
159 行
简单的撤销
一个易于使用的撤销-重做库
use simple_undo::Undo;
let mut message = Undo::new(String::new());
message.update(|text| text.push_str("Simple "));
message.update(|text| text.push_str("undo !"));
assert_eq!(*message, "Simple undo !");
message.undo(); // "Simple "
message.undo(); // ""
message.redo(); // "Simple "
message.update(|text| text.push_str("redo !"));
assert_eq!(*message, "Simple redo !");
let result: String = message.unwrap();
assert_eq!(result, "Simple redo !");
如何工作
Undo
包装给定的状态并保留一个副本。当调用 Undo::undo
时,通过重新应用n-1个更新到初始状态来重新创建前一个状态。