From 33920723fb726f4013611b0eca1832b4eb819672 Mon Sep 17 00:00:00 2001 From: James Wilson Date: Fri, 21 Nov 2025 12:12:47 +0000 Subject: [PATCH] Prep 0.16.2 release: impl DecodeItemIterator on mut T's --- CHANGELOG.md | 4 ++++ Cargo.toml | 2 +- scale-decode/src/visitor/types/array.rs | 10 ++++++++++ scale-decode/src/visitor/types/composite.rs | 10 ++++++++++ scale-decode/src/visitor/types/sequence.rs | 10 ++++++++++ scale-decode/src/visitor/types/tuple.rs | 10 ++++++++++ 6 files changed, 45 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d67ee19..130b055 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,10 @@ The format is based on [Keep a Changelog]. [Keep a Changelog]: http://keepachangelog.com/en/1.0.0/ +## 0.16.2 - 2025-11-21 + +- Implement `DecodeItemIterator` on `&mut T`s as well, so that we can use it more easily from visitors. + ## 0.16.1 - 2025-11-19 - Expose path information in sequences and variants, too, where possible. diff --git a/Cargo.toml b/Cargo.toml index 92f308d..2ddd3c1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -7,7 +7,7 @@ members = [ resolver = "2" [workspace.package] -version = "0.16.1" +version = "0.16.2" authors = ["Parity Technologies "] edition = "2021" license = "Apache-2.0" diff --git a/scale-decode/src/visitor/types/array.rs b/scale-decode/src/visitor/types/array.rs index 52ccbdf..1548639 100644 --- a/scale-decode/src/visitor/types/array.rs +++ b/scale-decode/src/visitor/types/array.rs @@ -157,3 +157,13 @@ impl<'scale, 'resolver, R: TypeResolver> crate::visitor::DecodeItemIterator<'sca self.decode_item(visitor) } } +impl<'scale, 'resolver, R: TypeResolver> crate::visitor::DecodeItemIterator<'scale, 'resolver, R> + for &mut Array<'scale, 'resolver, R> +{ + fn decode_item>( + &mut self, + visitor: V, + ) -> Option, V::Error>> { + (*self).decode_item(visitor) + } +} diff --git a/scale-decode/src/visitor/types/composite.rs b/scale-decode/src/visitor/types/composite.rs index e195c87..69bf4a4 100644 --- a/scale-decode/src/visitor/types/composite.rs +++ b/scale-decode/src/visitor/types/composite.rs @@ -225,3 +225,13 @@ impl<'scale, 'resolver, R: TypeResolver> crate::visitor::DecodeItemIterator<'sca self.decode_item(visitor) } } +impl<'scale, 'resolver, R: TypeResolver> crate::visitor::DecodeItemIterator<'scale, 'resolver, R> + for &mut Composite<'scale, 'resolver, R> +{ + fn decode_item<'a, V: Visitor>( + &mut self, + visitor: V, + ) -> Option, V::Error>> { + (*self).decode_item(visitor) + } +} diff --git a/scale-decode/src/visitor/types/sequence.rs b/scale-decode/src/visitor/types/sequence.rs index f96aa54..8c48858 100644 --- a/scale-decode/src/visitor/types/sequence.rs +++ b/scale-decode/src/visitor/types/sequence.rs @@ -140,3 +140,13 @@ impl<'scale, 'resolver, R: TypeResolver> crate::visitor::DecodeItemIterator<'sca self.decode_item(visitor) } } +impl<'scale, 'resolver, R: TypeResolver> crate::visitor::DecodeItemIterator<'scale, 'resolver, R> + for &mut Sequence<'scale, 'resolver, R> +{ + fn decode_item>( + &mut self, + visitor: V, + ) -> Option, V::Error>> { + (*self).decode_item(visitor) + } +} diff --git a/scale-decode/src/visitor/types/tuple.rs b/scale-decode/src/visitor/types/tuple.rs index 3faaaec..0bd0ee5 100644 --- a/scale-decode/src/visitor/types/tuple.rs +++ b/scale-decode/src/visitor/types/tuple.rs @@ -171,3 +171,13 @@ impl<'scale, 'resolver, R: TypeResolver> crate::visitor::DecodeItemIterator<'sca self.decode_item(visitor) } } +impl<'scale, 'resolver, R: TypeResolver> crate::visitor::DecodeItemIterator<'scale, 'resolver, R> + for &mut Tuple<'scale, 'resolver, R> +{ + fn decode_item<'a, V: Visitor>( + &mut self, + visitor: V, + ) -> Option, V::Error>> { + (*self).decode_item(visitor) + } +}