Skip to content

Commit 0d91383

Browse files
authored
Merge pull request #2948 from ProvableHQ/option_serialized_size_fix
Correct `Option::serialized_size`
2 parents 58b326d + cf7d12c commit 0d91383

1 file changed

Lines changed: 6 additions & 3 deletions

File tree

utilities/src/serialize/impls.rs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,8 @@ impl<T: CanonicalSerialize> CanonicalSerialize for Option<T> {
197197

198198
#[inline]
199199
fn serialized_size(&self, compress: Compress) -> usize {
200-
8 + self.as_ref().map(|s| s.serialized_size(compress)).unwrap_or(0)
200+
bool::serialized_size(&self.is_some(), compress)
201+
+ self.as_ref().map(|s| s.serialized_size(compress)).unwrap_or(0)
201202
}
202203
}
203204

@@ -637,10 +638,12 @@ mod test {
637638
(Compress::Yes, Validate::Yes),
638639
];
639640
for (compress, validate) in combinations {
640-
let mut serialized = vec![0; data.serialized_size(compress)];
641-
data.serialize_with_mode(&mut serialized[..], compress).unwrap();
641+
let mut serialized = vec![];
642+
data.serialize_with_mode(&mut serialized, compress).unwrap();
642643
let de = T::deserialize_with_mode(&serialized[..], compress, validate).unwrap();
643644
assert_eq!(data, de);
645+
646+
assert_eq!(data.serialized_size(compress), serialized.len());
644647
}
645648
}
646649

0 commit comments

Comments
 (0)