Remove Result from lua.null() and lua.array_metatable(). They never fail.
This commit is contained in:
parent
bc81d1016f
commit
2fae94586d
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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<String, Option<String>> = lua.from_value(val)?;
|
||||
|
@ -35,7 +35,7 @@ pub trait LuaSerdeExt<'lua> {
|
|||
/// Ok(())
|
||||
/// }
|
||||
/// ```
|
||||
fn null(&'lua self) -> Result<Value<'lua>>;
|
||||
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<Table<'lua>>;
|
||||
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<Value<'lua>> {
|
||||
// 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<Table<'lua>> {
|
||||
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())
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -128,7 +128,7 @@ impl<'lua> ser::Serializer for Serializer<'lua> {
|
|||
#[inline]
|
||||
fn serialize_none(self) -> Result<Value<'lua>> {
|
||||
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<Value<'lua>> {
|
||||
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<Value<'lua>> {
|
||||
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 })
|
||||
|
|
|
@ -17,10 +17,10 @@ fn test_serialize() -> Result<(), Box<dyn std::error::Error>> {
|
|||
|
||||
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<dyn std::error::Error>> {
|
|||
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<dyn std::error::Error>> {
|
||||
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<dyn std::error::Error>> {
|
|||
#[test]
|
||||
fn test_from_value_enum_untagged() -> Result<(), Box<dyn std::error::Error>> {
|
||||
let lua = Lua::new();
|
||||
lua.globals().set("null", lua.null()?)?;
|
||||
lua.globals().set("null", lua.null())?;
|
||||
|
||||
#[derive(Deserialize, PartialEq, Debug)]
|
||||
#[serde(untagged)]
|
||||
|
|
Loading…
Reference in a new issue