machina 0.6.1

Manage and execute assembly at runtime.
Documentation
#[macro_use]
extern crate sam;

#[cfg(test)]
mod tests {
    extern crate machina;

    use self::machina::cache::{Cache, STUB};

    #[test]
    fn insert() {
        let mut cache = Cache::new();
        cache.insert("mov_rax_3".to_string(), sam!(x64 => "mov rax, 3"));
        let asm = cache.get("mov_rax_3".to_string());
        assert_eq!(asm, sam!(x64 => "mov rax, 3"));
    }

    #[test]
    fn insert_with_stub() {
        let s_asm = format!("mov rax, {}", STUB);
        let mut cache = Cache::new();
        cache.insert_with_stub("mov_rax_x".to_string(), sam!(x64 => &s_asm));
        let asm = cache.get("mov_rax_x".to_string());
        assert_eq!(asm, sam!(x64 => &s_asm));
    }

    #[test]
    fn get_stub() {
        let s_asm = format!("mov rax, {}", STUB);
        let mut cache = Cache::new();
        cache.insert_with_stub("mov_rax_x".to_string(), sam!(x64 => &s_asm));
        let asm = cache.get_stub("mov_rax_x".to_string(), 0x00000000);
        assert_eq!(asm, sam!(x64 => "mov rax, 0x00000000"));
    }
}