toca 0.1.1

a library for record/display keyboard and mouse actions in a period of time.
Documentation
extern crate toca;

use toca::{MouseAction, MouseEv, MouseEventName, MousePlayer, set_timeout};

fn from_string() {
    // mock action
    let mock_action = MouseAction::from_string("{\"evs\":[{\"ev_name\":1,\"position\":[1953,367],\"timestamp\":1474},{\"ev_name\":2,\"position\":[1953,367],\"timestamp\":1562},{\"ev_name\":3,\"position\":[2194,281],\"timestamp\":2018},{\"ev_name\":4,\"position\":[2195,280],\"timestamp\":2090},{\"ev_name\":1,\"position\":[2263,337],\"timestamp\":2618},{\"ev_name\":2,\"position\":[2263,337],\"timestamp\":2698},{\"ev_name\":3,\"position\":[2130,389],\"timestamp\":3106},{\"ev_name\":4,\"position\":[2130,389],\"timestamp\":3194},{\"ev_name\":1,\"position\":[2169,445],\"timestamp\":3732},{\"ev_name\":2,\"position\":[2169,445],\"timestamp\":3810},{\"ev_name\":5,\"position\":[2099,365],\"timestamp\":4370},{\"ev_name\":6,\"position\":[2099,365],\"timestamp\":4458}],\"till\":5679}").unwrap();

    // simulate
    let mut player = MousePlayer::new();
    match player.load(mock_action) {
        Ok(_) => {
            set_timeout(|| {
                match player.do_play() {
                    Ok(_) => {
                        println!("done.");
                    }
                    Err(_) => {
                        println!("failed.");
                    }
                }
            }, 3000);
        }
        Err(_) => ()
    }
}

fn from_struct() {
    // mock action
    let mock_action = MouseAction {
        evs: vec![
            MouseEv {
                ev_name: MouseEventName::LeftDown,
                position: (505, 1246),
                timestamp: 160,
            },
            MouseEv {
                ev_name: MouseEventName::LeftUp,
                position: (405, 1246),
                timestamp: 224,
            },
            MouseEv {
                ev_name: MouseEventName::RightDown,
                position: (75, 1208),
                timestamp: 1200,
            },
            MouseEv {
                ev_name: MouseEventName::RightUp,
                position: (75, 1208),
                timestamp: 1280,
            },
        ],
        till: 1280,
    };

    // simulate
    let mut player = MousePlayer::new();
    match player.load(mock_action) {
        Ok(_) => {
            set_timeout(|| {
                match player.do_play() {
                    Ok(_) => {
                        println!("done.");
                    }
                    Err(_) => {
                        println!("failed.");
                    }
                }
            }, 3000);
        }
        Err(_) => ()
    }
}


fn main() {
    // from_string();
    from_struct();
}