3 个不稳定版本
使用旧的 Rust 2015
0.6.0 | 2021年4月18日 |
---|---|
0.5.1 | 2020年7月6日 |
0.5.0 | 2020年7月6日 |
#1012 在 编码
30KB
848 行
mlua_serde
serde 序列化/反序列化器实现,用于 mlua::Value
有关此包的更多信息,请参阅 包文档。
使用方法
要使用 mlua_serde
,首先将以下内容添加到您的 Cargo.toml
[dependencies]
mlua_serde = { version = "0.6", features = ["lua53"] }
您必须在 Lua 5.1、5.2、5.3 和 5.4 之间进行选择。要使用 Lua 5.4,将 lua53
更改为 lua54
,如下所示
[dependencies]
mlua_serde = { version = "0.6", features = ["lua54"] }
如果您由于某些原因在系统上没有安装 lua,请使用 vendored
功能
[dependencies]
mlua_serde = { version = "0.6", features = ["lua53", "vendored"] }
接下来,您可以使用 to_value
/from_value
函数进行序列化/反序列化
#[derive(Serialize, Deserialize)]
struct Foo {
bar: u32,
baz: Vec<String>,
}
fn main() {
let lua = mlua::Lua::new();
let foo = Foo {
bar: 42,
baz: vec![String::from("fizz"), String::from("buzz")],
};
let value = mlua_serde::to_value(lua, &foo).unwrap();
lua.globals().set("value", value).unwrap();
lua.load(
r#"
assert(value["bar"] == 42)
assert(value["baz"][2] == "buzz")
"#).exec().unwrap();
}
依赖关系
~1.4–3MB
~47K SLoC