Skip to content

Commit 5d2f15f

Browse files
committed
Export get_global_function() & get_global_table() etc. Make the writing much more simpler
1 parent 1fb24e4 commit 5d2f15f

File tree

2 files changed

+28
-24
lines changed

2 files changed

+28
-24
lines changed

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "lua_actor"
3-
version = "0.1.15"
3+
version = "0.1.16"
44
license = "MIT"
55
authors = ["JunYi JohnTeee Lee <johnteee@gmail.com>"]
66
include = ["src/**/*.rs", "Cargo.toml"]

src/actor.rs

Lines changed: 27 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ use fp_rust::{
66
sync::{CountDownLatch, Will, WillAsync},
77
};
88
use message::LuaMessage;
9-
use rlua::{Error, FromLuaMulti, Function, Lua, ToLuaMulti};
9+
use rlua::{Error, FromLua, FromLuaMulti, Function, Lua, Table, ToLua, ToLuaMulti};
1010

1111
#[derive(Clone)]
1212
pub struct Actor {
@@ -115,14 +115,24 @@ impl Actor {
115115
}
116116
}
117117
#[inline]
118-
fn _get_global(lua: &Arc<Mutex<Lua>>, key: &str) -> Result<LuaMessage, Error> {
119-
let vm = lua.lock().unwrap();
120-
let globals = vm.globals();
121-
Ok(globals.get::<_, LuaMessage>(key)?)
118+
pub fn get_global_raw<'lua, K: ToLua<'lua>, V: FromLua<'lua>>(
119+
lua: &'lua Lua,
120+
key: K,
121+
) -> Result<V, Error> {
122+
lua.globals().get::<_, V>(key)
122123
}
123124
#[inline]
124-
fn _get_global_function<'lua>(lua: &'lua Lua, key: &str) -> Result<Function<'lua>, Error> {
125-
Ok(lua.globals().get::<_, Function<'lua>>(key)?)
125+
pub fn get_global_function<'lua>(lua: &'lua Lua, key: &str) -> Result<Function<'lua>, Error> {
126+
Self::get_global_raw::<_, Function<'lua>>(lua, key)
127+
}
128+
#[inline]
129+
pub fn get_global_table<'lua>(lua: &'lua Lua, key: &str) -> Result<Table<'lua>, Error> {
130+
Self::get_global_raw::<_, Table<'lua>>(lua, key)
131+
}
132+
#[inline]
133+
fn _get_global(lua: &Arc<Mutex<Lua>>, key: &str) -> Result<LuaMessage, Error> {
134+
let vm = lua.lock().unwrap();
135+
Self::get_global_raw::<_, LuaMessage>(&vm, key)
126136
}
127137

128138
#[inline]
@@ -135,7 +145,7 @@ impl Actor {
135145
R: ToLuaMulti<'callback>,
136146
F: 'static + Send + Fn(&'callback Lua, A) -> Result<R, Error>,
137147
{
138-
Ok(lua.create_function(func)?)
148+
lua.create_function(func)
139149
}
140150
#[inline]
141151
pub fn def_fn_with_name<'lua, 'callback, F, A, R>(
@@ -150,7 +160,7 @@ impl Actor {
150160
{
151161
let def = Self::def_fn(lua, func)?;
152162
lua.globals().set(key, def)?;
153-
Ok(Self::_get_global_function(lua, key)?)
163+
Self::get_global_function(lua, key)
154164
}
155165
pub fn def_fn_with_name_nowait<'callback, F, A, R>(
156166
&self,
@@ -184,8 +194,7 @@ impl Actor {
184194
source: &str,
185195
name: Option<&str>,
186196
) -> Result<Function<'lua>, Error> {
187-
let vm = lua;
188-
Ok(vm.load(source, name)?)
197+
lua.load(source, name)
189198
}
190199
pub fn load_nowait(
191200
&self,
@@ -244,16 +253,14 @@ impl Actor {
244253
}
245254
#[inline]
246255
fn _exec(lua: &Arc<Mutex<Lua>>, source: &str, name: Option<&str>) -> Result<LuaMessage, Error> {
247-
let vm = lua.lock().unwrap();
248-
Ok(vm.exec(source, name)?)
256+
lua.lock().unwrap().exec(source, name)
249257
}
250258
#[inline]
251259
pub fn exec_multi<'lua, R>(lua: &'lua Lua, source: &str, name: Option<&str>) -> Result<R, Error>
252260
where
253261
R: FromLuaMulti<'lua>,
254262
{
255-
let vm = lua;
256-
Ok(vm.exec(source, name)?)
263+
lua.exec(source, name)
257264
}
258265
pub fn eval(
259266
&self,
@@ -272,16 +279,14 @@ impl Actor {
272279
}
273280
#[inline]
274281
fn _eval(lua: &Arc<Mutex<Lua>>, source: &str, name: Option<&str>) -> Result<LuaMessage, Error> {
275-
let vm = lua.lock().unwrap();
276-
Ok(vm.eval(source, name)?)
282+
lua.lock().unwrap().eval(source, name)
277283
}
278284
#[inline]
279285
pub fn eval_multi<'lua, R>(lua: &'lua Lua, source: &str, name: Option<&str>) -> Result<R, Error>
280286
where
281287
R: FromLuaMulti<'lua>,
282288
{
283-
let vm = lua;
284-
Ok(vm.eval(source, name)?)
289+
lua.eval(source, name)
285290
}
286291

287292
pub fn call(&self, name: &'static str, args: LuaMessage) -> Result<LuaMessage, Error> {
@@ -314,18 +319,17 @@ impl Actor {
314319
let vm = lua.lock().unwrap();
315320
let func: Function = vm.globals().get::<_, Function>(name)?;
316321

317-
Ok(func.call::<_, LuaMessage>(args)?)
322+
func.call::<_, LuaMessage>(args)
318323
}
319324
#[inline]
320325
pub fn call_multi<'lua, A, R>(lua: &'lua Lua, name: &str, args: A) -> Result<R, Error>
321326
where
322327
A: ToLuaMulti<'lua> + Send + Sync + Clone + 'static,
323328
R: FromLuaMulti<'lua>,
324329
{
325-
let vm = lua;
326-
let func: Function = vm.globals().get::<_, Function>(name)?;
330+
let func: Function = lua.globals().get::<_, Function>(name)?;
327331

328-
Ok(func.call::<_, R>(args)?)
332+
func.call::<_, R>(args)
329333
}
330334
}
331335

0 commit comments

Comments
 (0)