#lua #serde #de #rlua #value

rlua_serde

rlua Value 的 Serde (De) 序列化/反序列化实现

5 个版本 (3 个破坏性更新)

使用旧的 Rust 2015

0.4.0 2020年1月31日
0.3.1 2019年4月26日
0.3.0 2019年2月8日
0.2.0 2018年10月11日
0.1.0 2018年2月13日

#1490编码

每月下载量:49
用于 2 crates

MIT 许可证

30KB
761

rlue_serde

serde 序列化/反序列化器对 rlua::Value 的实现

License: MIT Crates.io Documentation

有关此 crate 的更多信息,请参阅 crate 文档

用法

要使用 rlua_serde,首先将其添加到您的 Cargo.toml

[dependencies]
rlua_serde = "0.4"

然后,您可以使用 to_value/from_value 函数进行序列化/反序列化

#[derive(Serialize, Deserialize)]
struct Foo {
    bar: u32,
    baz: Vec<String>,
}

fn main() {
    let lua = rlua::Lua::new();
    lua.context(|lua| {
        let foo = Foo {
            bar: 42,
            baz: vec![String::from("fizz"), String::from("buzz")],
        };

        let value = rlua_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();
    });
}

依赖项

~0.9–1.4MB
~24K SLoC