#undo-redo #undo #redo #auto-generate #data-control #data-structures

rundo_types

Rundo 的基本撤销/重做类型

8 个不稳定版本 (3 个重大更改)

使用旧的 Rust 2015

0.4.0 2018年4月6日
0.3.2 2018年2月23日
0.2.2 2018年2月23日
0.1.1 2018年2月5日

#8 in #redo


3 个crate使用

MIT 许可证

14KB
426 代码行

Rundo

Build Status Coverage Status

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);
}

文档

库 API

快速入门 2 分钟学习如何使用 Rundo。

依赖关系

~170KB