diff --git a/examples/async_http_reqwest.rs b/examples/async_http_reqwest.rs index 5c68bc6..e80051a 100644 --- a/examples/async_http_reqwest.rs +++ b/examples/async_http_reqwest.rs @@ -4,7 +4,7 @@ use mlua::{Error, Lua, LuaSerdeExt, Result}; async fn main() -> Result<()> { let lua = Lua::new(); let globals = lua.globals(); - globals.set("null", lua.null()?)?; + globals.set("null", lua.null())?; let fetch_json = lua.create_async_function(|lua, uri: String| async move { let resp = reqwest::get(&uri) diff --git a/examples/serialize.rs b/examples/serialize.rs index d1b9e42..7c9ae69 100644 --- a/examples/serialize.rs +++ b/examples/serialize.rs @@ -33,8 +33,8 @@ fn main() -> Result<()> { "#).eval()?)?; // Set it as (serializable) userdata - globals.set("null", lua.null()?)?; - globals.set("array_mt", lua.array_metatable()?)?; + globals.set("null", lua.null())?; + globals.set("array_mt", lua.array_metatable())?; globals.set("car", lua.create_ser_userdata(car)?)?; // Create a Lua table with multiple data types diff --git a/src/serde/mod.rs b/src/serde/mod.rs index 52b43a8..7562d51 100644 --- a/src/serde/mod.rs +++ b/src/serde/mod.rs @@ -26,7 +26,7 @@ pub trait LuaSerdeExt<'lua> { /// /// fn main() -> Result<()> { /// let lua = Lua::new(); - /// lua.globals().set("null", lua.null()?)?; + /// lua.globals().set("null", lua.null())?; /// /// let val = lua.load(r#"{a = null}"#).eval()?; /// let map: HashMap> = lua.from_value(val)?; @@ -35,7 +35,7 @@ pub trait LuaSerdeExt<'lua> { /// Ok(()) /// } /// ``` - fn null(&'lua self) -> Result>; + fn null(&'lua self) -> Value<'lua>; /// A metatable attachable to a Lua table to systematically encode it as Array (instead of Map). /// As result, encoded Array will contain only sequence part of the table, with the same length @@ -51,7 +51,7 @@ pub trait LuaSerdeExt<'lua> { /// /// fn main() -> Result<()> { /// let lua = Lua::new(); - /// lua.globals().set("array_mt", lua.array_metatable()?)?; + /// lua.globals().set("array_mt", lua.array_metatable())?; /// /// // Encode as an empty array (no sequence part in the lua table) /// let val = lua.load("setmetatable({a = 5}, array_mt)").eval()?; @@ -66,7 +66,7 @@ pub trait LuaSerdeExt<'lua> { /// Ok(()) /// } /// ``` - fn array_metatable(&'lua self) -> Result>; + fn array_metatable(&'lua self) -> Table<'lua>; /// Converts `T` into a `Value` instance. /// @@ -162,19 +162,18 @@ pub trait LuaSerdeExt<'lua> { } impl<'lua> LuaSerdeExt<'lua> for Lua { - fn null(&'lua self) -> Result> { - // TODO: Remove Result? - Ok(Value::LightUserData(LightUserData(ptr::null_mut()))) + fn null(&'lua self) -> Value<'lua> { + Value::LightUserData(LightUserData(ptr::null_mut())) } - fn array_metatable(&'lua self) -> Result> { + fn array_metatable(&'lua self) -> Table<'lua> { unsafe { let _sg = StackGuard::new(self.state); assert_stack(self.state, 1); push_array_metatable(self.state); - Ok(Table(self.pop_ref())) + Table(self.pop_ref()) } } diff --git a/src/serde/ser.rs b/src/serde/ser.rs index e532332..0278bc9 100644 --- a/src/serde/ser.rs +++ b/src/serde/ser.rs @@ -128,7 +128,7 @@ impl<'lua> ser::Serializer for Serializer<'lua> { #[inline] fn serialize_none(self) -> Result> { if self.options.serialize_none_to_null { - self.lua.null() + Ok(self.lua.null()) } else { Ok(Value::Nil) } @@ -145,7 +145,7 @@ impl<'lua> ser::Serializer for Serializer<'lua> { #[inline] fn serialize_unit(self) -> Result> { if self.options.serialize_unit_to_null { - self.lua.null() + Ok(self.lua.null()) } else { Ok(Value::Nil) } @@ -154,7 +154,7 @@ impl<'lua> ser::Serializer for Serializer<'lua> { #[inline] fn serialize_unit_struct(self, _name: &'static str) -> Result> { if self.options.serialize_unit_to_null { - self.lua.null() + Ok(self.lua.null()) } else { Ok(Value::Nil) } @@ -201,7 +201,7 @@ impl<'lua> ser::Serializer for Serializer<'lua> { let len = len.unwrap_or(0) as c_int; let table = self.lua.create_table_with_capacity(len, 0)?; if self.options.set_array_metatable { - table.set_metatable(Some(self.lua.array_metatable()?)); + table.set_metatable(Some(self.lua.array_metatable())); } let options = self.options; Ok(SerializeVec { table, options }) diff --git a/tests/serde.rs b/tests/serde.rs index 3d4bcee..d5b8a79 100644 --- a/tests/serde.rs +++ b/tests/serde.rs @@ -17,10 +17,10 @@ fn test_serialize() -> Result<(), Box> { let ud = lua.create_ser_userdata(MyUserData(123, "test userdata".into()))?; globals.set("ud", ud)?; - globals.set("null", lua.null()?)?; + globals.set("null", lua.null())?; let empty_array = lua.create_table()?; - empty_array.set_metatable(Some(lua.array_metatable()?)); + empty_array.set_metatable(Some(lua.array_metatable())); globals.set("empty_array", empty_array)?; let val = lua @@ -145,7 +145,7 @@ fn test_serialize_failure() -> Result<(), Box> { fn test_to_value_struct() -> LuaResult<()> { let lua = Lua::new(); let globals = lua.globals(); - globals.set("null", lua.null()?)?; + globals.set("null", lua.null())?; #[derive(Serialize)] struct Test { @@ -175,7 +175,7 @@ fn test_to_value_struct() -> LuaResult<()> { fn test_to_value_enum() -> LuaResult<()> { let lua = Lua::new(); let globals = lua.globals(); - globals.set("null", lua.null()?)?; + globals.set("null", lua.null())?; #[derive(Serialize)] struct Test { @@ -236,7 +236,7 @@ fn test_to_value_enum() -> LuaResult<()> { fn test_to_value_with_options() -> Result<(), Box> { let lua = Lua::new(); let globals = lua.globals(); - globals.set("null", lua.null()?)?; + globals.set("null", lua.null())?; // set_array_metatable let data = lua.to_value_with( @@ -386,7 +386,7 @@ fn test_from_value_enum() -> Result<(), Box> { #[test] fn test_from_value_enum_untagged() -> Result<(), Box> { let lua = Lua::new(); - lua.globals().set("null", lua.null()?)?; + lua.globals().set("null", lua.null())?; #[derive(Deserialize, PartialEq, Debug)] #[serde(untagged)]