1个不稳定版本
使用旧Rust 2015
0.1.0 | 2018年2月4日 |
---|
#12 在 #redo
24KB
689 代码行
Rundo
Rundo是Rust的一个重做/撤销库,可以自动生成撤销操作。以下是如何使用Rundo的示例。
#![feature(proc_macro)]
#![feature(decl_macro)]
extern crate rundo;
use rundo::prelude::*;
#[rundo]
struct Point {
x: f32,
y: f32,
}
fn main(){
let mut space = Workspace::new(Point! {x: 2.0, y: 2.0,});
*space.get_mut().x = 3.0;
// x was changed to 3.0
assert_eq!(*space.data.x, 3.0);
// x will undo to 2.0
space.undo();
assert_eq!(*space.data.x, 2.0);
// x will redo to 3.0
space.redo();
assert_eq!(*space.data.x, 3.0);
}
文档
快速入门 2分钟了解如何使用Rundo。
依赖关系
~2MB
~47K SLoC