Skip to content

Instantly share code, notes, and snippets.

@tsloughter
Created May 16, 2014 04:26
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tsloughter/f2d80af37a505934ac7d to your computer and use it in GitHub Desktop.
Save tsloughter/f2d80af37a505934ac7d to your computer and use it in GitHub Desktop.
#[no_mangle]
extern "C" fn foo(env: *mut ErlNifEnv, argc: i32, argv: *ERL_NIF_TERM) -> ERL_NIF_TERM {
print!("Hello Foo from Rust\n");
unsafe {
let a = enif_make_atom(env, ("foo".to_c_str()).unwrap());
return a;
}
}
#[no_mangle]
pub fn _nif_init() -> *Struct_enif_entry_t {
static nif_funcs: &'static [ErlNifFunc] = &[ErlNifFunc {
name: "foo",
arity: 0,
fptr: option::Some(foo)
}];
static entry: Struct_enif_entry_t = Struct_enif_entry_t {major: 2,
minor: 6,
name: "erl_nif",
num_of_funcs: 1,
funcs: nif_funcs,
load: None,
reload: None,
upgrade: None,
unload: None,
vm_variant: "beam.vanilla" };
return &entry as *Struct_enif_entry_t;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment