diff --git a/README.md b/README.md
index 6b7db14c1..5a6f85b66 100644
--- a/README.md
+++ b/README.md
@@ -35,8 +35,8 @@ Add the following to your `Cargo.toml` using the [format](#formats) you want
to use:
```toml
-musli = "0.0.103"
-musli-wire = "0.0.103"
+musli = "0.0.104"
+musli-wire = "0.0.104"
```
@@ -130,17 +130,14 @@ impl<'de, M> Decode<'de, M> for MyType {
where
D: Decoder<'de, Mode = M>,
{
- let mut seq = decoder.decode_sequence()?;
- let mut data = Vec::with_capacity(seq.size_hint().or_default());
+ decoder.decode_sequence(|seq| {
+ let mut data = Vec::with_capacity(seq.size_hint().or_default());
- while let Some(decoder) = seq.decode_next()? {
- data.push(decoder.decode()?);
- }
+ while let Some(decoder) = seq.decode_next()? {
+ data.push(decoder.decode()?);
+ }
- seq.end()?;
-
- Ok(Self {
- data
+ Ok(Self { data })
})
}
}
diff --git a/crates/musli-allocator/Cargo.toml b/crates/musli-allocator/Cargo.toml
index d18e0ad03..be38fd89b 100644
--- a/crates/musli-allocator/Cargo.toml
+++ b/crates/musli-allocator/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "musli-allocator"
-version = "0.0.103"
+version = "0.0.104"
authors = ["John-John Tedro "]
edition = "2021"
description = """
@@ -24,4 +24,4 @@ std = ["musli/std"]
alloc = ["musli/alloc"]
[dependencies]
-musli = { path = "../musli", version = "0.0.103", default-features = false }
+musli = { path = "../musli", version = "0.0.104", default-features = false }
diff --git a/crates/musli-common/Cargo.toml b/crates/musli-common/Cargo.toml
index 1d091ac1f..47921781e 100644
--- a/crates/musli-common/Cargo.toml
+++ b/crates/musli-common/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "musli-common"
-version = "0.0.103"
+version = "0.0.104"
authors = ["John-John Tedro "]
edition = "2021"
rust-version = "1.76"
@@ -25,8 +25,8 @@ std = ["musli/std", "simdutf8?/std", "musli-allocator/std"]
alloc = ["musli-allocator/alloc"]
[dependencies]
-musli = { path = "../musli", version = "0.0.103", default-features = false }
-musli-allocator = { path = "../musli-allocator", version = "0.0.103", default-features = false }
+musli = { path = "../musli", version = "0.0.104", default-features = false }
+musli-allocator = { path = "../musli-allocator", version = "0.0.104", default-features = false }
simdutf8 = { version = "0.1.4", optional = true, default-features = false }
[dev-dependencies]
diff --git a/crates/musli-descriptive/Cargo.toml b/crates/musli-descriptive/Cargo.toml
index c6f3d874d..34eb55f59 100644
--- a/crates/musli-descriptive/Cargo.toml
+++ b/crates/musli-descriptive/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "musli-descriptive"
-version = "0.0.103"
+version = "0.0.104"
authors = ["John-John Tedro "]
edition = "2021"
rust-version = "1.76"
@@ -27,7 +27,7 @@ test = []
simdutf8 = ["musli-common/simdutf8"]
[dependencies]
-musli = { path = "../musli", version = "0.0.103", default-features = false }
-musli-common = { path = "../musli-common", version = "0.0.103", default-features = false }
-musli-storage = { path = "../musli-storage", version = "0.0.103", default-features = false }
-musli-value = { path = "../musli-value", version = "0.0.103", default-features = false, optional = true }
+musli = { path = "../musli", version = "0.0.104", default-features = false }
+musli-common = { path = "../musli-common", version = "0.0.104", default-features = false }
+musli-storage = { path = "../musli-storage", version = "0.0.104", default-features = false }
+musli-value = { path = "../musli-value", version = "0.0.104", default-features = false, optional = true }
diff --git a/crates/musli-json/Cargo.toml b/crates/musli-json/Cargo.toml
index a298eebc8..78be81f06 100644
--- a/crates/musli-json/Cargo.toml
+++ b/crates/musli-json/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "musli-json"
-version = "0.0.103"
+version = "0.0.104"
authors = ["John-John Tedro "]
edition = "2021"
rust-version = "1.76"
@@ -28,9 +28,9 @@ simdutf8 = ["musli-common/simdutf8"]
parse-full = []
[dependencies]
-musli = { path = "../musli", version = "0.0.103", default-features = false }
-musli-common = { path = "../musli-common", version = "0.0.103", default-features = false }
-musli-value = { path = "../musli-value", version = "0.0.103", default-features = false, optional = true }
+musli = { path = "../musli", version = "0.0.104", default-features = false }
+musli-common = { path = "../musli-common", version = "0.0.104", default-features = false }
+musli-value = { path = "../musli-value", version = "0.0.104", default-features = false, optional = true }
itoa = "1.0.9"
ryu = "1.0.15"
diff --git a/crates/musli-macros/Cargo.toml b/crates/musli-macros/Cargo.toml
index 90dc0e1fe..c800e9589 100644
--- a/crates/musli-macros/Cargo.toml
+++ b/crates/musli-macros/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "musli-macros"
-version = "0.0.103"
+version = "0.0.104"
authors = ["John-John Tedro "]
edition = "2021"
rust-version = "1.76"
diff --git a/crates/musli-serde/Cargo.toml b/crates/musli-serde/Cargo.toml
index b9eacce42..378cbd20f 100644
--- a/crates/musli-serde/Cargo.toml
+++ b/crates/musli-serde/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "musli-serde"
-version = "0.0.103"
+version = "0.0.104"
authors = ["John-John Tedro "]
edition = "2021"
description = """
@@ -24,8 +24,8 @@ std = ["musli/std", "serde/std"]
alloc = ["musli/alloc", "serde/alloc"]
[dependencies]
-musli = { path = "../musli", version = "0.0.103", default-features = false }
-musli-common = { path = "../musli-common", version = "0.0.103", default-features = false }
+musli = { path = "../musli", version = "0.0.104", default-features = false }
+musli-common = { path = "../musli-common", version = "0.0.104", default-features = false }
serde = { version = "1.0.197", default-features = false }
[dev-dependencies]
diff --git a/crates/musli-storage/Cargo.toml b/crates/musli-storage/Cargo.toml
index c59cf5386..cb47f61b8 100644
--- a/crates/musli-storage/Cargo.toml
+++ b/crates/musli-storage/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "musli-storage"
-version = "0.0.103"
+version = "0.0.104"
authors = ["John-John Tedro "]
edition = "2021"
rust-version = "1.76"
@@ -27,5 +27,5 @@ test = []
simdutf8 = ["musli-common/simdutf8"]
[dependencies]
-musli = { path = "../musli", version = "0.0.103", default-features = false }
-musli-common = { path = "../musli-common", version = "0.0.103", default-features = false }
+musli = { path = "../musli", version = "0.0.104", default-features = false }
+musli-common = { path = "../musli-common", version = "0.0.104", default-features = false }
diff --git a/crates/musli-value/Cargo.toml b/crates/musli-value/Cargo.toml
index 809ed6871..314db145a 100644
--- a/crates/musli-value/Cargo.toml
+++ b/crates/musli-value/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "musli-value"
-version = "0.0.103"
+version = "0.0.104"
authors = ["John-John Tedro "]
edition = "2021"
rust-version = "1.76"
@@ -26,9 +26,9 @@ alloc = ["musli/alloc", "musli-storage/alloc", "musli-common/alloc"]
test = []
[dependencies]
-musli = { path = "../musli", version = "0.0.103", default-features = false }
-musli-common = { path = "../musli-common", version = "0.0.103", default-features = false }
-musli-storage = { path = "../musli-storage", version = "0.0.103", default-features = false }
+musli = { path = "../musli", version = "0.0.104", default-features = false }
+musli-common = { path = "../musli-common", version = "0.0.104", default-features = false }
+musli-storage = { path = "../musli-storage", version = "0.0.104", default-features = false }
itoa = "1.0.9"
ryu = "1.0.15"
diff --git a/crates/musli-wire/Cargo.toml b/crates/musli-wire/Cargo.toml
index 15a6bc92e..2d95e0786 100644
--- a/crates/musli-wire/Cargo.toml
+++ b/crates/musli-wire/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "musli-wire"
-version = "0.0.103"
+version = "0.0.104"
authors = ["John-John Tedro "]
edition = "2021"
rust-version = "1.76"
@@ -27,6 +27,6 @@ test = []
simdutf8 = ["musli-common/simdutf8"]
[dependencies]
-musli = { path = "../musli", version = "0.0.103", default-features = false }
-musli-common = { path = "../musli-common", version = "0.0.103", default-features = false }
-musli-storage = { path = "../musli-storage", version = "0.0.103", default-features = false }
+musli = { path = "../musli", version = "0.0.104", default-features = false }
+musli-common = { path = "../musli-common", version = "0.0.104", default-features = false }
+musli-storage = { path = "../musli-storage", version = "0.0.104", default-features = false }
diff --git a/crates/musli-zerocopy-macros/Cargo.toml b/crates/musli-zerocopy-macros/Cargo.toml
index a3cfdd9fd..ae2909eff 100644
--- a/crates/musli-zerocopy-macros/Cargo.toml
+++ b/crates/musli-zerocopy-macros/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "musli-zerocopy-macros"
-version = "0.0.103"
+version = "0.0.104"
authors = ["John-John Tedro "]
edition = "2021"
rust-version = "1.76"
diff --git a/crates/musli-zerocopy/Cargo.toml b/crates/musli-zerocopy/Cargo.toml
index 2ef78e273..a0933629e 100644
--- a/crates/musli-zerocopy/Cargo.toml
+++ b/crates/musli-zerocopy/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "musli-zerocopy"
-version = "0.0.103"
+version = "0.0.104"
authors = ["John-John Tedro "]
edition = "2021"
rust-version = "1.76"
@@ -25,10 +25,10 @@ std = []
alloc = []
[dependencies]
-musli-zerocopy-macros = { version = "=0.0.103", path = "../musli-zerocopy-macros" }
+musli-zerocopy-macros = { version = "=0.0.104", path = "../musli-zerocopy-macros" }
rand = { version = "0.8.5", default-features = false, features = ["small_rng"] }
[dev-dependencies]
anyhow = "1.0.75"
trybuild = "1.0.85"
-musli-zerocopy-macros = { version = "=0.0.103", path = "../musli-zerocopy-macros", features = ["sneaky-fields"] }
+musli-zerocopy-macros = { version = "=0.0.104", path = "../musli-zerocopy-macros", features = ["sneaky-fields"] }
diff --git a/crates/musli/Cargo.toml b/crates/musli/Cargo.toml
index 88dc3de20..3f0bbdcb3 100644
--- a/crates/musli/Cargo.toml
+++ b/crates/musli/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "musli"
-version = "0.0.103"
+version = "0.0.104"
authors = ["John-John Tedro "]
edition = "2021"
rust-version = "1.76"
@@ -25,4 +25,4 @@ std = []
alloc = []
[dependencies]
-musli-macros = { version = "=0.0.103", path = "../musli-macros" }
+musli-macros = { version = "=0.0.104", path = "../musli-macros" }
diff --git a/crates/musli/README.md b/crates/musli/README.md
index 6b7db14c1..5a6f85b66 100644
--- a/crates/musli/README.md
+++ b/crates/musli/README.md
@@ -35,8 +35,8 @@ Add the following to your `Cargo.toml` using the [format](#formats) you want
to use:
```toml
-musli = "0.0.103"
-musli-wire = "0.0.103"
+musli = "0.0.104"
+musli-wire = "0.0.104"
```
@@ -130,17 +130,14 @@ impl<'de, M> Decode<'de, M> for MyType {
where
D: Decoder<'de, Mode = M>,
{
- let mut seq = decoder.decode_sequence()?;
- let mut data = Vec::with_capacity(seq.size_hint().or_default());
+ decoder.decode_sequence(|seq| {
+ let mut data = Vec::with_capacity(seq.size_hint().or_default());
- while let Some(decoder) = seq.decode_next()? {
- data.push(decoder.decode()?);
- }
+ while let Some(decoder) = seq.decode_next()? {
+ data.push(decoder.decode()?);
+ }
- seq.end()?;
-
- Ok(Self {
- data
+ Ok(Self { data })
})
}
}
diff --git a/crates/musli/src/lib.rs b/crates/musli/src/lib.rs
index 83710db12..d37567bea 100644
--- a/crates/musli/src/lib.rs
+++ b/crates/musli/src/lib.rs
@@ -32,8 +32,8 @@
//! to use:
//!
//! ```toml
-//! musli = "0.0.103"
-//! musli-wire = "0.0.103"
+//! musli = "0.0.104"
+//! musli-wire = "0.0.104"
//! ```
//!
//!
diff --git a/crates/tests/Cargo.toml b/crates/tests/Cargo.toml
index 602c29eff..ae0bb999a 100644
--- a/crates/tests/Cargo.toml
+++ b/crates/tests/Cargo.toml
@@ -49,14 +49,14 @@ bitcode = ["dep:bitcode", "serde", "simdutf8"]
bitcode-derive = ["dep:bitcode", "bitcode?/derive", "simdutf8"]
[dependencies]
-musli = { path = "../musli", version = "0.0.103", default-features = false, optional = true, features = ["alloc"] }
-musli-wire = { path = "../musli-wire", version = "0.0.103", default-features = false, features = ["alloc", "test"], optional = true }
-musli-descriptive = { path = "../musli-descriptive", version = "0.0.103", default-features = false, features = ["alloc", "test"], optional = true }
-musli-storage = { path = "../musli-storage", version = "0.0.103", default-features = false, features = ["alloc", "test"], optional = true }
-musli-json = { path = "../musli-json", version = "0.0.103", default-features = false, features = ["alloc", "test"], optional = true }
-musli-value = { path = "../musli-value", version = "0.0.103", default-features = false, features = ["alloc", "test"], optional = true }
-musli-zerocopy = { path = "../musli-zerocopy", version = "0.0.103", default-features = false, features = ["alloc"], optional = true }
-musli-macros = { path = "../musli-macros", version = "0.0.103", features = ["test"] }
+musli = { path = "../musli", version = "0.0.104", default-features = false, optional = true, features = ["alloc"] }
+musli-wire = { path = "../musli-wire", version = "0.0.104", default-features = false, features = ["alloc", "test"], optional = true }
+musli-descriptive = { path = "../musli-descriptive", version = "0.0.104", default-features = false, features = ["alloc", "test"], optional = true }
+musli-storage = { path = "../musli-storage", version = "0.0.104", default-features = false, features = ["alloc", "test"], optional = true }
+musli-json = { path = "../musli-json", version = "0.0.104", default-features = false, features = ["alloc", "test"], optional = true }
+musli-value = { path = "../musli-value", version = "0.0.104", default-features = false, features = ["alloc", "test"], optional = true }
+musli-zerocopy = { path = "../musli-zerocopy", version = "0.0.104", default-features = false, features = ["alloc"], optional = true }
+musli-macros = { path = "../musli-macros", version = "0.0.104", features = ["test"] }
anyhow = "1.0.75"
serde = { version = "1.0.188", default-features = false, optional = true, features = ["derive"] }
@@ -72,13 +72,13 @@ postcard = { version = "1.0.8", default-features = false, optional = true }
zerocopy = { version = "0.7.11", default-features = false, optional = true, features = ["byteorder", "derive"] }
[dev-dependencies]
-musli = { path = "../musli", version = "0.0.103", default-features = false, features = ["alloc"] }
-musli-serde = { path = "../musli-serde", version = "0.0.103", default-features = false, features = ["alloc"] }
-musli-storage = { path = "../musli-storage", version = "0.0.103", default-features = false, features = ["alloc", "test"] }
-musli-wire = { path = "../musli-wire", version = "0.0.103", default-features = false, features = ["alloc", "test"] }
-musli-descriptive = { path = "../musli-descriptive", version = "0.0.103", default-features = false, features = ["alloc", "test"] }
-musli-json = { path = "../musli-json", version = "0.0.103", default-features = false, features = ["alloc", "test"] }
-musli-value = { path = "../musli-value", version = "0.0.103", default-features = false, features = ["alloc", "test"] }
+musli = { path = "../musli", version = "0.0.104", default-features = false, features = ["alloc"] }
+musli-serde = { path = "../musli-serde", version = "0.0.104", default-features = false, features = ["alloc"] }
+musli-storage = { path = "../musli-storage", version = "0.0.104", default-features = false, features = ["alloc", "test"] }
+musli-wire = { path = "../musli-wire", version = "0.0.104", default-features = false, features = ["alloc", "test"] }
+musli-descriptive = { path = "../musli-descriptive", version = "0.0.104", default-features = false, features = ["alloc", "test"] }
+musli-json = { path = "../musli-json", version = "0.0.104", default-features = false, features = ["alloc", "test"] }
+musli-value = { path = "../musli-value", version = "0.0.104", default-features = false, features = ["alloc", "test"] }
serde = { version = "1.0.188", default-features = false, features = ["derive"] }
criterion = { version = "0.4.0", features = ["html_reports"] }
trybuild = "1.0.85"