From 9d12a4fc4b787a9d977559bd41730a853038180c Mon Sep 17 00:00:00 2001 From: Christine Dodrill Date: Sun, 5 Jul 2020 20:50:33 -0400 Subject: [PATCH] fix build --- .envrc | 1 + Cargo.toml | 8 ++++---- shell.nix | 8 ++++++++ src/de.rs | 4 ++-- src/error.rs | 2 +- src/lib.rs | 18 +++++++++--------- src/ser.rs | 14 +++++++------- 7 files changed, 32 insertions(+), 23 deletions(-) create mode 100644 .envrc create mode 100644 shell.nix diff --git a/.envrc b/.envrc new file mode 100644 index 0000000..be81fed --- /dev/null +++ b/.envrc @@ -0,0 +1 @@ +eval "$(lorri direnv)" \ No newline at end of file diff --git a/Cargo.toml b/Cargo.toml index 36b856e..7730acc 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,15 +1,15 @@ [package] -name = "rlua_serde" +name = "mlua_serde" version = "0.4.0" authors = ["zrkn "] -description = "Serde (De)serializer implementation for rlua Value" -repository = "https://github.com/zrkn/rlua_serde/" +description = "Serde (De)serializer implementation for mlua Value" +repository = "https://tulpa.dev/lua/mlua_serde/" readme = "README.md" keywords = ["lua", "serde"] license = "MIT" [dependencies] -rlua = "0.17" +mlua = { version = "0.4", features = ["lua53"] } serde = "1.0" [dev-dependencies] diff --git a/shell.nix b/shell.nix new file mode 100644 index 0000000..30aaea5 --- /dev/null +++ b/shell.nix @@ -0,0 +1,8 @@ +let + pkgs = import {}; +in +pkgs.mkShell { + buildInputs = with pkgs; [ + rustc cargo rls lua5_3 pkg-config + ]; +} diff --git a/src/de.rs b/src/de.rs index 0387c17..cdc8e87 100644 --- a/src/de.rs +++ b/src/de.rs @@ -1,7 +1,7 @@ use serde; use serde::de::IntoDeserializer; -use rlua::{Value, TablePairs, TableSequence}; +use mlua::{Value, TablePairs, TableSequence}; use error::{Error, Result}; @@ -267,7 +267,7 @@ impl<'lua, 'de> serde::de::VariantAccess<'de> for VariantDeserializer<'lua> { #[cfg(test)] mod tests { - use rlua::Lua; + use mlua::Lua; use from_value; diff --git a/src/error.rs b/src/error.rs index aa9a234..dfe9e4a 100644 --- a/src/error.rs +++ b/src/error.rs @@ -3,7 +3,7 @@ use std::error::Error as StdError; use std::result::Result as StdResult; use serde; -use rlua::Error as LuaError; +use mlua::Error as LuaError; #[derive(Debug)] diff --git a/src/lib.rs b/src/lib.rs index f69a349..77cf34d 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,5 +1,5 @@ //! This crate allows you to serialize and deserialize any type that implements -//! `serde::Serialize` and `serde::Deserialize` into/from `rlua::Value`. +//! `serde::Serialize` and `serde::Deserialize` into/from `mlua::Value`. //! //! Implementation is similar to `serde_json::Value` //! @@ -9,8 +9,8 @@ //! extern crate serde; //! #[macro_use] //! extern crate serde_derive; -//! extern crate rlua; -//! extern crate rlua_serde; +//! extern crate mlua; +//! extern crate mlua_serde; //! //! fn main() { //! #[derive(Serialize, Deserialize)] @@ -19,14 +19,14 @@ //! baz: Vec, //! } //! -//! let lua = rlua::Lua::new(); +//! let lua = mlua::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(); +//! let value = mlua_serde::to_value(lua, &foo).unwrap(); //! lua.globals().set("value", value).unwrap(); //! lua.load( //! r#" @@ -37,7 +37,7 @@ //! } //! ``` -extern crate rlua; +extern crate mlua; #[macro_use] extern crate serde; #[cfg(test)] @@ -49,11 +49,11 @@ pub mod ser; pub mod de; -use rlua::{Context, Value, Error}; +use mlua::{Lua, Value, Error}; -pub fn to_value(lua: Context, t: T) -> Result { - let serializer = ser::Serializer { lua }; +pub fn to_value<'lua, T: serde::Serialize>(lua: &'lua Lua, t: T) -> Result, Error> { + let serializer = ser::Serializer { lua: &lua }; Ok(t.serialize(serializer)?) } diff --git a/src/ser.rs b/src/ser.rs index a12e837..eac0c9c 100644 --- a/src/ser.rs +++ b/src/ser.rs @@ -1,13 +1,13 @@ use serde; -use rlua::{Context, Value, Table, String as LuaString}; +use mlua::{Lua, Value, Table, String as LuaString}; use to_value; use error::{Error, Result}; pub struct Serializer<'lua> { - pub lua: Context<'lua>, + pub lua: &'lua Lua, } impl<'lua> serde::Serializer for Serializer<'lua> { @@ -208,7 +208,7 @@ impl<'lua> serde::Serializer for Serializer<'lua> { pub struct SerializeVec<'lua> { - lua: Context<'lua>, + lua: &'lua Lua, table: Table<'lua>, idx: u64, } @@ -262,7 +262,7 @@ impl<'lua> serde::ser::SerializeTupleStruct for SerializeVec<'lua> { pub struct SerializeTupleVariant<'lua> { - lua: Context<'lua>, + lua: &'lua Lua, name: LuaString<'lua>, table: Table<'lua>, idx: u64, @@ -289,7 +289,7 @@ impl<'lua> serde::ser::SerializeTupleVariant for SerializeTupleVariant<'lua> { pub struct SerializeMap<'lua> { - lua: Context<'lua>, + lua: &'lua Lua, table: Table<'lua>, next_key: Option> } @@ -339,7 +339,7 @@ impl<'lua> serde::ser::SerializeStruct for SerializeMap<'lua> { pub struct SerializeStructVariant<'lua> { - lua: Context<'lua>, + lua: &'lua Lua, name: LuaString<'lua>, table: Table<'lua>, } @@ -365,7 +365,7 @@ impl<'lua> serde::ser::SerializeStructVariant for SerializeStructVariant<'lua> { #[cfg(test)] mod tests { - use rlua::Lua; + use mlua::Lua; use super::*; #[test]