lua-shared 0.1.0

Really simple wrapper around lua_shared(_srv) that tries not to be a total burden when interfacing with gmod's lua.
Documentation
  • Coverage
  • 63.39%
    71 out of 112 items documented1 out of 4 items with examples
  • Size
  • Source code size: 1.74 MB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 2.85 MB This is the summed size of all files generated by rustdoc for all configured targets
  • Links
  • IVogel/lua-shared
    0 0 0
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • IVogel

lua-shared

Really simple wrapper around lua_shared(_srv) that tries not to fuck your brains.

Example usecase:

use lua_shared as lua;
use lua::cstr;
use std::ffi::c_void;

#[no_mangle]
unsafe extern "C" fn gmod13_open(state: *mut c_void) -> i32 {
	lua::createtable(state, 0, 2);
	lua::pushfunction(state, |_| {
		println!("Hello there!");
		Ok(0)
	});
	lua::setfield(state, -2, lua::cstr!("test_immutable_closure"));
	fn  test_function(state: lua_State) -> Result {
		println!("Hello there, but from functuin, I guess.");
		Ok(0)
	}
	lua::pushfunction(state, test_function);
	lua::setfield(state, -2, lua::cstr!("test_immutable_function"));

	let  mut  counter = 0;
	lua::pushfunction_mut(state, move |_| {
		println!("Here is your counter!: {}", counter);
		lua::pushinteger(state, counter);
		counter += 1;
		Ok(1)
	});
	lua::setfield(state, -2, lua::cstr!("test_mutable_closure"));
	lua::setfield(state, lua::GLOBALSINDEX, lua::cstr!("tests"));
}