From 6cd77bc6c70d5aaffa88a32ac13b6e6718f4783e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 5 Dec 2024 13:41:14 +0000 Subject: [PATCH 1/2] Update generator requirement from 0.7 to 0.8 Updates the requirements on [generator](https://github.com/Xudong-Huang/generator-rs) to permit the latest version. - [Release notes](https://github.com/Xudong-Huang/generator-rs/releases) - [Commits](https://github.com/Xudong-Huang/generator-rs/compare/0.7.0...0.8.4) --- updated-dependencies: - dependency-name: generator dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index 87acea1..678ee05 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -26,7 +26,7 @@ bytes = { version = "1.2.1", optional = true } [dev-dependencies] serde = { version = "1.0", features = ["derive"] } assert_matches = "1.5.0" -generator = "0.7" +generator = "0.8" itertools = "0.13.0" [package.metadata.docs.rs] From 7988fbe71b65e8702a96476d5cef1ad3dc7c590a Mon Sep 17 00:00:00 2001 From: Jiahao XU <30436523+NobodyXu@users.noreply.github.com> Date: Sun, 8 Dec 2024 15:26:51 +1100 Subject: [PATCH 2/2] Fix lifetime error in de.rs --- src/de.rs | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/src/de.rs b/src/de.rs index 8f26cbf..7a04298 100644 --- a/src/de.rs +++ b/src/de.rs @@ -166,6 +166,23 @@ macro_rules! impl_for_deserialize_primitive { }; } +impl<'a, 'de, It> serde::de::EnumAccess<'de> for &'a mut Deserializer<'de, It> +where + It: iter::FusedIterator + Iterator, +{ + type Error = Error; + type Variant = Self; + + fn variant_seed(self, seed: V) -> Result<(V::Value, Self::Variant)> + where + V: de::DeserializeSeed<'de>, + { + let idx: u32 = self.next_u32()?; + let val: Result<_> = seed.deserialize(idx.into_deserializer()); + Ok((val?, self)) + } +} + impl<'de, 'a, It> de::Deserializer<'de> for &'a mut Deserializer<'de, It> where It: iter::FusedIterator + Iterator, @@ -316,23 +333,6 @@ where where V: Visitor<'de>, { - impl<'a, 'de, It> serde::de::EnumAccess<'de> for &'a mut Deserializer<'de, It> - where - It: iter::FusedIterator + Iterator, - { - type Error = Error; - type Variant = Self; - - fn variant_seed(self, seed: V) -> Result<(V::Value, Self::Variant)> - where - V: de::DeserializeSeed<'de>, - { - let idx: u32 = self.next_u32()?; - let val: Result<_> = seed.deserialize(idx.into_deserializer()); - Ok((val?, self)) - } - } - visitor.visit_enum(self) } @@ -471,7 +471,7 @@ mod tests { /// Generate subslices, plus stuffing empty slices into the returned /// iterator. - fn generate_subslices(mut bytes: &[u8], chunk_size: usize) -> impl Iterator { + fn generate_subslices<'a>(mut bytes: &'a [u8], chunk_size: usize) -> impl Iterator { assert_ne!(chunk_size, 0); Gn::new_scoped(move |mut s| loop {