executable_memory 0.1.2

executable memory for windows and unix
Documentation
#![feature(test)]


extern crate test;
extern crate executable_memory;


use test::Bencher;
use executable_memory::ExecutableMemory;

use std::mem;


#[bench]
fn bench_native(b: &mut Bencher) {

    #[inline(never)]
    fn f() -> u32 { test::black_box(4294967295) }

    b.iter(f);
}

#[bench]
fn bench_executable_memory(b: &mut Bencher) {
    let mut memory = ExecutableMemory::default();

    memory[0] = 0xb8;
    memory[1] = 0xff;
    memory[2] = 0xff;
    memory[3] = 0xff;
    memory[4] = 0xff;
    memory[5] = 0xc3;

    let f: fn() -> u32 = unsafe {
        mem::transmute((&memory[0..6]).as_ptr())
    };

    b.iter(f);
}