diff options
Diffstat (limited to 'src/lua/serde/mod.rs')
-rw-r--r-- | src/lua/serde/mod.rs | 57 |
1 files changed, 0 insertions, 57 deletions
diff --git a/src/lua/serde/mod.rs b/src/lua/serde/mod.rs deleted file mode 100644 index 82a928a..0000000 --- a/src/lua/serde/mod.rs +++ /dev/null @@ -1,57 +0,0 @@ -// vendored from https://github.com/zrkn/rlua_serde because it dependend on an outdated rlua version -// Copyright (c) 2018 zrkn <zrkn@email.su>, licensed under the MIT License - -//! This crate allows you to serialize and deserialize any type that implements -//! `serde::Serialize` and `serde::Deserialize` into/from `rlua::Value`. -//! -//! Implementation is similar to `serde_json::Value` -//! -//! Example usage: -//! -//! ```rust -//! extern crate serde; -//! #[macro_use] -//! extern crate serde_derive; -//! extern crate rlua; -//! extern crate rlua_serde; -//! -//! fn main() { -//! #[derive(Serialize, Deserialize)] -//! struct Foo { -//! bar: u32, -//! baz: Vec<String>, -//! } -//! -//! 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(); -//! }); -//! } -//! ``` - -pub mod de; -pub mod error; -pub mod ser; - -use rlua::{Context, Error, Value}; - -pub fn to_value<T: serde::Serialize>(lua: Context, t: T) -> Result<Value, Error> { - let serializer = ser::Serializer { lua }; - Ok(t.serialize(serializer)?) -} - -pub fn from_value<'de, T: serde::Deserialize<'de>>(value: Value<'de>) -> Result<T, Error> { - let deserializer = de::Deserializer { value }; - Ok(T::deserialize(deserializer)?) -} |