Serde support for mlua
Go to file
Cadey Ratio ab1eef2cf5 fix links 2020-07-05 20:58:23 -04:00
src fully adapt to mlua 2020-07-05 20:57:40 -04:00
.envrc fix build 2020-07-05 20:50:33 -04:00
.gitignore Initial commit 2018-02-13 15:12:22 +03:00
Cargo.toml fix build 2020-07-05 20:50:33 -04:00
LICENSE Add LICENSE file 2018-10-11 15:50:10 +03:00
README.md fix links 2020-07-05 20:58:23 -04:00
shell.nix fully adapt to mlua 2020-07-05 20:57:40 -04:00

README.md

rlue_serde

Implementation of serde Serializer/Deserializer for mlua::Value

License: MIT Crates.io Documentation

More information about this crate can be found in the crate documentation.

Usage

To use mlua_serde, first add this to your Cargo.toml:

[dependencies]
mlua_serde = "0.4"

Next, you can use to_value/from_value functions to serialize/deserialize:

#[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();
}