# Rundo

Build Status Coverage Status

Rundo is a redo / undo library for rust which can auto generate undo op. Below is an example to use Rundo.

```rust

![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); } ```

Documents

Library API

Quick Start 2 min learn how to use Rundo.