pub unsafe fn lua_isnoneornil(L: *mut lua_State, idx: c_int) -> c_intExpand description
Examples found in repository?
examples/lua.rs (line 28)
7unsafe fn run_script(script_name: String, script_src: String) {
8 let lua = sys::luaL_newstate();
9 assert_ne!(lua, ptr::null_mut());
10 sys::luaL_openlibs(lua);
11 let script_data = script_src.as_bytes();
12 let script_name = CString::new(script_name).unwrap();
13 let mut error = sys::luaL_loadbuffer(
14 lua,
15 script_data.as_ptr() as _,
16 script_data.len() as _,
17 script_name.as_ptr() as _,
18 );
19 if error != 0 {
20 eprintln!("luaL_loadbuffer failed");
21 } else {
22 error = sys::lua_pcall(lua, 0, 1, 0);
23 if error != 0 {
24 eprintln!("lua_pcall failed");
25 }
26 }
27 let idx = sys::lua_gettop(lua);
28 if sys::lua_isnoneornil(lua, idx) != 1 {
29 let s = sys::lua_tostring(lua, idx);
30 assert_ne!(s, ptr::null(), "lua_tostring returned null");
31 let result = CStr::from_ptr(s).to_string_lossy().to_string();
32 println!("script result: {}", result);
33 }
34 sys::lua_close(lua);
35}