diff --git a/eth2/utils/ssz2/examples/struct_definition.rs b/eth2/utils/ssz2/examples/struct_definition.rs index a449cf9b02..1cbc8b465f 100644 --- a/eth2/utils/ssz2/examples/struct_definition.rs +++ b/eth2/utils/ssz2/examples/struct_definition.rs @@ -1,5 +1,6 @@ use ssz2::{Decodable, DecodeError, Encodable, SszDecoderBuilder, SszStream}; +#[derive(Debug, PartialEq)] pub struct Foo { a: u16, b: Vec, @@ -51,8 +52,11 @@ fn main() { c: 11, }; - assert_eq!( - foo.as_ssz_bytes(), - vec![42, 0, 8, 0, 0, 0, 11, 0, 0, 1, 2, 3] - ); + let bytes = vec![42, 0, 8, 0, 0, 0, 11, 0, 0, 1, 2, 3]; + + assert_eq!(foo.as_ssz_bytes(), bytes); + + let decoded_foo = Foo::from_ssz_bytes(&bytes).unwrap(); + + assert_eq!(foo, decoded_foo); } diff --git a/eth2/utils/ssz2/src/decode.rs b/eth2/utils/ssz2/src/decode.rs index b8e82bdf54..a4e827da3f 100644 --- a/eth2/utils/ssz2/src/decode.rs +++ b/eth2/utils/ssz2/src/decode.rs @@ -103,7 +103,7 @@ impl<'a> SszDecoderBuilder<'a> { let mut insertions = 0; let mut running_offset = self.offsets[0].offset; - for i in 1..self.offsets.len() { + for i in 1..=self.offsets.len() { let (slice_option, position) = if i == self.offsets.len() { (self.bytes.get(running_offset..), self.offsets.len()) } else {