fix vec of type with buf (#727)

This commit is contained in:
joshieDo
2023-01-05 15:48:10 +08:00
committed by GitHub
parent e069248e78
commit 528c19f079
2 changed files with 19 additions and 2 deletions

View File

@ -104,7 +104,9 @@ where
let mut element = T::default();
let len = buf.get_u16();
(element, buf) = T::from_compact(buf, len as usize);
(element, _) = T::from_compact(&buf[..(len as usize)], len as usize);
buf.advance(len as usize);
list.push(element);
}
@ -161,7 +163,9 @@ where
}
let len = buf.get_u16();
let (element, buf) = T::from_compact(buf, len as usize);
let (element, _) = T::from_compact(&buf[..(len as usize)], len as usize);
buf.advance(len as usize);
(Some(element), buf)
}

View File

@ -128,6 +128,8 @@ impl_fixed_arbitrary!(BlockNumHash, 40);
#[cfg(test)]
mod test {
use crate::table::{Compress, Decompress};
use super::*;
use rand::{thread_rng, Rng};
@ -155,4 +157,15 @@ mod test {
let key = BlockNumHash::arbitrary(&mut Unstructured::new(&bytes)).unwrap();
assert_eq!(bytes, Encode::encode(key));
}
#[test]
fn test_ommer() {
let mut ommer = StoredBlockOmmers::default();
ommer.ommers.push(Header::default());
ommer.ommers.push(Header::default());
assert!(
ommer.clone() ==
StoredBlockOmmers::decompress::<Vec<_>>(ommer.compress().into()).unwrap()
);
}
}