Skip to content

Commit 6dcb2a6

Browse files
authored
Simplify fixed decoding in derive macro (#40)
* Simplify fixed decoding in derive macro * Use `ok_or` * Use `split_at`
1 parent 576bb81 commit 6dcb2a6

File tree

1 file changed

+2
-17
lines changed

1 file changed

+2
-17
lines changed

ssz_derive/src/lib.rs

+2-17
Original file line numberDiff line numberDiff line change
@@ -821,20 +821,8 @@ fn ssz_decode_derive_struct(item: &DeriveInput, struct_data: &DataStruct) -> Tok
821821
}
822822

823823
fixed_decodes.push(quote! {
824-
let #ident = {
825-
start = end;
826-
end = end
827-
.checked_add(#ssz_fixed_len)
828-
.ok_or_else(|| ssz::DecodeError::OutOfBoundsByte {
829-
i: usize::max_value()
830-
})?;
831-
let slice = bytes.get(start..end)
832-
.ok_or_else(|| ssz::DecodeError::InvalidByteLength {
833-
len: bytes.len(),
834-
expected: end
835-
})?;
836-
#from_ssz_bytes?
837-
};
824+
let (slice, bytes) = bytes.split_at(#ssz_fixed_len);
825+
let #ident = #from_ssz_bytes?;
838826
});
839827
is_fixed_lens.push(is_ssz_fixed_len);
840828
fixed_lens.push(ssz_fixed_len);
@@ -872,9 +860,6 @@ fn ssz_decode_derive_struct(item: &DeriveInput, struct_data: &DataStruct) -> Tok
872860
});
873861
}
874862

875-
let mut start: usize = 0;
876-
let mut end = start;
877-
878863
#(
879864
#fixed_decodes
880865
)*

0 commit comments

Comments
 (0)