Skip to content

Commit 7bc72be

Browse files
committed
Use serde feature flag instead of serialize.
The old one is still supported.
1 parent 2fbbbe4 commit 7bc72be

File tree

20 files changed

+94
-91
lines changed

20 files changed

+94
-91
lines changed

.github/workflows/main.yml

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@ jobs:
2727
- name: Build ${{ matrix.lua }} vendored
2828
run: |
2929
cargo build --features "${{ matrix.lua }},vendored"
30-
cargo build --features "${{ matrix.lua }},vendored,async,serialize,macros,anyhow,userdata-wrappers"
31-
cargo build --features "${{ matrix.lua }},vendored,async,serialize,macros,anyhow,userdata-wrappers,send"
30+
cargo build --features "${{ matrix.lua }},vendored,async,serde,macros,anyhow,userdata-wrappers"
31+
cargo build --features "${{ matrix.lua }},vendored,async,serde,macros,anyhow,userdata-wrappers,send"
3232
shell: bash
3333
- name: Build ${{ matrix.lua }} pkg-config
3434
if: ${{ matrix.os == 'ubuntu-latest' }}
@@ -51,7 +51,7 @@ jobs:
5151
toolchain: stable
5252
target: aarch64-apple-darwin
5353
- name: Cross-compile
54-
run: cargo build --target aarch64-apple-darwin --features "${{ matrix.lua }},vendored,async,send,serialize,macros,anyhow,userdata-wrappers"
54+
run: cargo build --target aarch64-apple-darwin --features "${{ matrix.lua }},vendored,async,send,serde,macros,anyhow,userdata-wrappers"
5555

5656
build_aarch64_cross_ubuntu:
5757
name: Cross-compile to aarch64-unknown-linux-gnu
@@ -72,7 +72,7 @@ jobs:
7272
sudo apt-get install -y --no-install-recommends gcc-aarch64-linux-gnu libc6-dev-arm64-cross
7373
shell: bash
7474
- name: Cross-compile
75-
run: cargo build --target aarch64-unknown-linux-gnu --features "${{ matrix.lua }},vendored,async,send,serialize,macros,anyhow,userdata-wrappers"
75+
run: cargo build --target aarch64-unknown-linux-gnu --features "${{ matrix.lua }},vendored,async,send,serde,macros,anyhow,userdata-wrappers"
7676
shell: bash
7777

7878
build_armv7_cross_ubuntu:
@@ -94,7 +94,7 @@ jobs:
9494
sudo apt-get install -y --no-install-recommends gcc-arm-linux-gnueabihf libc-dev-armhf-cross
9595
shell: bash
9696
- name: Cross-compile
97-
run: cargo build --target armv7-unknown-linux-gnueabihf --features "${{ matrix.lua }},vendored,async,send,serialize,macros,anyhow,userdata-wrappers"
97+
run: cargo build --target armv7-unknown-linux-gnueabihf --features "${{ matrix.lua }},vendored,async,send,serde,macros,anyhow,userdata-wrappers"
9898
shell: bash
9999

100100
test:
@@ -123,14 +123,14 @@ jobs:
123123
- name: Run ${{ matrix.lua }} tests
124124
run: |
125125
cargo test --features "${{ matrix.lua }},vendored"
126-
cargo test --features "${{ matrix.lua }},vendored,async,serialize,macros,anyhow,userdata-wrappers"
127-
cargo test --features "${{ matrix.lua }},vendored,async,serialize,macros,anyhow,userdata-wrappers,send"
126+
cargo test --features "${{ matrix.lua }},vendored,async,serde,macros,anyhow,userdata-wrappers"
127+
cargo test --features "${{ matrix.lua }},vendored,async,serde,macros,anyhow,userdata-wrappers,send"
128128
shell: bash
129129
- name: Run compile tests (macos lua54)
130130
if: ${{ matrix.os == 'macos-latest' && matrix.lua == 'lua54' }}
131131
run: |
132132
TRYBUILD=overwrite cargo test --features "${{ matrix.lua }},vendored" --tests -- --ignored
133-
TRYBUILD=overwrite cargo test --features "${{ matrix.lua }},vendored,async,send,serialize,macros" --tests -- --ignored
133+
TRYBUILD=overwrite cargo test --features "${{ matrix.lua }},vendored,async,send,serde,macros" --tests -- --ignored
134134
shell: bash
135135

136136
test_with_sanitizer:
@@ -154,8 +154,8 @@ jobs:
154154
- uses: Swatinem/rust-cache@v2
155155
- name: Run ${{ matrix.lua }} tests with address sanitizer
156156
run: |
157-
cargo test --tests --features "${{ matrix.lua }},vendored,async,serialize,macros,anyhow" --target x86_64-unknown-linux-gnu -- --skip test_too_many_recursions
158-
cargo test --tests --features "${{ matrix.lua }},vendored,async,serialize,macros,anyhow,userdata-wrappers,send" --target x86_64-unknown-linux-gnu -- --skip test_too_many_recursions
157+
cargo test --tests --features "${{ matrix.lua }},vendored,async,serde,macros,anyhow" --target x86_64-unknown-linux-gnu -- --skip test_too_many_recursions
158+
cargo test --tests --features "${{ matrix.lua }},vendored,async,serde,macros,anyhow,userdata-wrappers,send" --target x86_64-unknown-linux-gnu -- --skip test_too_many_recursions
159159
shell: bash
160160
env:
161161
RUSTFLAGS: -Z sanitizer=address
@@ -181,7 +181,7 @@ jobs:
181181
- uses: Swatinem/rust-cache@v2
182182
- name: Run ${{ matrix.lua }} tests with forced memory limit
183183
run: |
184-
cargo test --tests --features "${{ matrix.lua }},vendored,async,send,serialize,macros,anyhow,userdata-wrappers"
184+
cargo test --tests --features "${{ matrix.lua }},vendored,async,send,serde,macros,anyhow,userdata-wrappers"
185185
shell: bash
186186
env:
187187
RUSTFLAGS: --cfg=force_memory_limit
@@ -254,7 +254,7 @@ jobs:
254254
- name: Run ${{ matrix.lua }} tests
255255
run: |
256256
cargo test --tests --features "${{ matrix.lua }},vendored"
257-
cargo test --tests --features "${{ matrix.lua }},vendored,async,serialize,macros,anyhow,userdata-wrappers"
257+
cargo test --tests --features "${{ matrix.lua }},vendored,async,serde,macros,anyhow,userdata-wrappers"
258258
259259
rustfmt:
260260
name: Rustfmt
@@ -281,4 +281,4 @@ jobs:
281281
- uses: giraffate/clippy-action@v1
282282
with:
283283
reporter: 'github-pr-review'
284-
clippy_flags: --features "${{ matrix.lua }},vendored,async,send,serialize,macros,anyhow,userdata-wrappers"
284+
clippy_flags: --features "${{ matrix.lua }},vendored,async,send,serde,macros,anyhow,userdata-wrappers"

Cargo.toml

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ with async/await features and support of writing native Lua modules in Rust.
1616
"""
1717

1818
[package.metadata.docs.rs]
19-
features = ["lua54", "vendored", "async", "send", "serialize", "macros"]
19+
features = ["lua54", "vendored", "async", "send", "serde", "macros"]
2020
rustdoc-args = ["--cfg", "docsrs"]
2121

2222
[workspace]
@@ -40,11 +40,14 @@ module = ["mlua_derive", "ffi/module"]
4040
async = ["dep:futures-util"]
4141
send = ["error-send"]
4242
error-send = []
43-
serialize = ["dep:serde", "dep:erased-serde", "dep:serde-value", "bstr/serde"]
43+
serde = ["dep:serde", "dep:erased-serde", "dep:serde-value", "bstr/serde"]
4444
macros = ["mlua_derive/macros"]
4545
anyhow = ["dep:anyhow", "error-send"]
4646
userdata-wrappers = ["parking_lot/send_guard"]
4747

48+
# deprecated features
49+
serialize = ["serde"]
50+
4851
[dependencies]
4952
mlua_derive = { version = "=0.11.0-beta.2", optional = true, path = "mlua_derive" }
5053
bstr = { version = "1.0", features = ["std"], default-features = false }
@@ -90,15 +93,15 @@ required-features = ["async"]
9093
[[bench]]
9194
name = "serde"
9295
harness = false
93-
required-features = ["serialize"]
96+
required-features = ["serde"]
9497

9598
[[example]]
9699
name = "async_http_client"
97100
required-features = ["async", "macros"]
98101

99102
[[example]]
100103
name = "async_http_reqwest"
101-
required-features = ["async", "serialize", "macros"]
104+
required-features = ["async", "serde", "macros"]
102105

103106
[[example]]
104107
name = "async_http_server"
@@ -113,8 +116,8 @@ name = "guided_tour"
113116
required-features = ["macros"]
114117

115118
[[example]]
116-
name = "serialize"
117-
required-features = ["serialize"]
119+
name = "serde"
120+
required-features = ["serde"]
118121

119122
[[example]]
120123
name = "userdata"

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ Below is a list of the available feature flags. By default `mlua` does not enabl
5656
* `async`: enable async/await support (any executor can be used, eg. [tokio] or [async-std])
5757
* `send`: make `mlua::Lua: Send + Sync` (adds [`Send`] requirement to `mlua::Function` and `mlua::UserData`)
5858
* `error-send`: make `mlua:Error: Send + Sync`
59-
* `serialize`: add serialization and deserialization support to `mlua` types using [serde]
59+
* `serde`: add serialization and deserialization support to `mlua` types using [serde]
6060
* `macros`: enable procedural macros (such as `chunk!`)
6161
* `anyhow`: enable `anyhow::Error` conversion into Lua
6262
* `userdata-wrappers`: opt into `impl UserData` for `Rc<T>`/`Arc<T>`/`Rc<RefCell<T>>`/`Arc<Mutex<T>>` where `T: UserData`
@@ -93,7 +93,7 @@ This works using Lua [coroutines](https://www.lua.org/manual/5.3/manual.html#2.6
9393
cargo run --example async_http_client --features=lua54,async,macros
9494

9595
# async http client (reqwest)
96-
cargo run --example async_http_reqwest --features=lua54,async,macros,serialize
96+
cargo run --example async_http_reqwest --features=lua54,async,macros,serde
9797

9898
# async http server
9999
cargo run --example async_http_server --features=lua54,async,macros,send
@@ -102,7 +102,7 @@ curl -v http://localhost:3000
102102

103103
### Serialization (serde) support
104104

105-
With the `serialize` feature flag enabled, `mlua` allows you to serialize/deserialize any type that implements [`serde::Serialize`] and [`serde::Deserialize`] into/from [`mlua::Value`]. In addition, `mlua` provides the [`serde::Serialize`] trait implementation for it (including `UserData` support).
105+
With the `serde` feature flag enabled, `mlua` allows you to serialize/deserialize any type that implements [`serde::Serialize`] and [`serde::Deserialize`] into/from [`mlua::Value`]. In addition, `mlua` provides the [`serde::Serialize`] trait implementation for it (including `UserData` support).
106106

107107
[Example](examples/serialize.rs)
108108

File renamed without changes.

src/buffer.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#[cfg(feature = "serialize")]
1+
#[cfg(feature = "serde")]
22
use serde::ser::{Serialize, Serializer};
33

44
use crate::types::ValueRef;
@@ -73,7 +73,7 @@ impl Buffer {
7373
}
7474
}
7575

76-
#[cfg(feature = "serialize")]
76+
#[cfg(feature = "serde")]
7777
impl Serialize for Buffer {
7878
fn serialize<S: Serializer>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error> {
7979
serializer.serialize_bytes(unsafe { self.as_slice() })

src/error.rs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -183,12 +183,12 @@ pub enum Error {
183183
/// and returned again.
184184
PreviouslyResumedPanic,
185185
/// Serialization error.
186-
#[cfg(feature = "serialize")]
187-
#[cfg_attr(docsrs, doc(cfg(feature = "serialize")))]
186+
#[cfg(feature = "serde")]
187+
#[cfg_attr(docsrs, doc(cfg(feature = "serde")))]
188188
SerializeError(StdString),
189189
/// Deserialization error.
190-
#[cfg(feature = "serialize")]
191-
#[cfg_attr(docsrs, doc(cfg(feature = "serialize")))]
190+
#[cfg(feature = "serde")]
191+
#[cfg_attr(docsrs, doc(cfg(feature = "serde")))]
192192
DeserializeError(StdString),
193193
/// A custom error.
194194
///
@@ -309,11 +309,11 @@ impl fmt::Display for Error {
309309
Error::PreviouslyResumedPanic => {
310310
write!(fmt, "previously resumed panic returned again")
311311
}
312-
#[cfg(feature = "serialize")]
312+
#[cfg(feature = "serde")]
313313
Error::SerializeError(err) => {
314314
write!(fmt, "serialize error: {err}")
315315
},
316-
#[cfg(feature = "serialize")]
316+
#[cfg(feature = "serde")]
317317
Error::DeserializeError(err) => {
318318
write!(fmt, "deserialize error: {err}")
319319
},
@@ -494,14 +494,14 @@ impl From<Utf8Error> for Error {
494494
}
495495
}
496496

497-
#[cfg(feature = "serialize")]
497+
#[cfg(feature = "serde")]
498498
impl serde::ser::Error for Error {
499499
fn custom<T: fmt::Display>(msg: T) -> Self {
500500
Self::SerializeError(msg.to_string())
501501
}
502502
}
503503

504-
#[cfg(feature = "serialize")]
504+
#[cfg(feature = "serde")]
505505
impl serde::de::Error for Error {
506506
fn custom<T: fmt::Display>(msg: T) -> Self {
507507
Self::DeserializeError(msg.to_string())

src/lib.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
//! The [`Value`] enum and other types implement [`serde::Serialize`] trait to support serializing
3636
//! Lua values into Rust values.
3737
//!
38-
//! Requires `feature = "serialize"`.
38+
//! Requires `feature = "serde"`.
3939
//!
4040
//! # Async/await support
4141
//!
@@ -140,12 +140,12 @@ pub use crate::{
140140
#[cfg_attr(docsrs, doc(cfg(feature = "async")))]
141141
pub use crate::{thread::AsyncThread, traits::LuaNativeAsyncFn};
142142

143-
#[cfg(feature = "serialize")]
143+
#[cfg(feature = "serde")]
144144
#[doc(inline)]
145145
pub use crate::serde::{de::Options as DeserializeOptions, ser::Options as SerializeOptions, LuaSerdeExt};
146146

147-
#[cfg(feature = "serialize")]
148-
#[cfg_attr(docsrs, doc(cfg(feature = "serialize")))]
147+
#[cfg(feature = "serde")]
148+
#[cfg_attr(docsrs, doc(cfg(feature = "serde")))]
149149
pub mod serde;
150150

151151
#[cfg(feature = "mlua_derive")]

src/prelude.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ pub use crate::{
3232
#[doc(no_inline)]
3333
pub use crate::{AsyncThread as LuaAsyncThread, LuaNativeAsyncFn};
3434

35-
#[cfg(feature = "serialize")]
35+
#[cfg(feature = "serde")]
3636
#[doc(no_inline)]
3737
pub use crate::{
3838
DeserializeOptions as LuaDeserializeOptions, LuaSerdeExt, SerializeOptions as LuaSerializeOptions,

src/serde/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ use crate::util::check_stack;
1313
use crate::value::Value;
1414

1515
/// Trait for serializing/deserializing Lua values using Serde.
16-
#[cfg_attr(docsrs, doc(cfg(feature = "serialize")))]
16+
#[cfg_attr(docsrs, doc(cfg(feature = "serde")))]
1717
pub trait LuaSerdeExt: Sealed {
1818
/// A special value (lightuserdata) to encode/decode optional (none) values.
1919
///

src/state.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ use {
3939
std::future::{self, Future},
4040
};
4141

42-
#[cfg(feature = "serialize")]
42+
#[cfg(feature = "serde")]
4343
use serde::Serialize;
4444

4545
pub(crate) use extra::ExtraData;
@@ -1367,8 +1367,8 @@ impl Lua {
13671367
}
13681368

13691369
/// Creates a Lua userdata object from a custom serializable userdata type.
1370-
#[cfg(feature = "serialize")]
1371-
#[cfg_attr(docsrs, doc(cfg(feature = "serialize")))]
1370+
#[cfg(feature = "serde")]
1371+
#[cfg_attr(docsrs, doc(cfg(feature = "serde")))]
13721372
#[inline]
13731373
pub fn create_ser_userdata<T>(&self, data: T) -> Result<AnyUserData>
13741374
where
@@ -1395,8 +1395,8 @@ impl Lua {
13951395
/// Creates a Lua userdata object from a custom serializable Rust type.
13961396
///
13971397
/// See [`Lua::create_any_userdata`] for more details.
1398-
#[cfg(feature = "serialize")]
1399-
#[cfg_attr(docsrs, doc(cfg(feature = "serialize")))]
1398+
#[cfg(feature = "serde")]
1399+
#[cfg_attr(docsrs, doc(cfg(feature = "serde")))]
14001400
#[inline]
14011401
pub fn create_ser_any_userdata<T>(&self, data: T) -> Result<AnyUserData>
14021402
where

0 commit comments

Comments
 (0)