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"