From 6116ee66e31e20afaac104fcac827d0bbf3cc958 Mon Sep 17 00:00:00 2001 From: Paul Hauner Date: Thu, 13 Sep 2018 13:02:51 +1000 Subject: [PATCH] Add ssz Encodable trait for usize --- ssz/src/impl_encode.rs | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/ssz/src/impl_encode.rs b/ssz/src/impl_encode.rs index 0836d3867..88b4c1edc 100644 --- a/ssz/src/impl_encode.rs +++ b/ssz/src/impl_encode.rs @@ -43,6 +43,7 @@ impl_encodable_for_uint!(u8); impl_encodable_for_uint!(u16); impl_encodable_for_uint!(u32); impl_encodable_for_uint!(u64); +impl_encodable_for_uint!(usize); impl Encodable for H256 { fn ssz_append(&self, s: &mut SszStream) { @@ -159,4 +160,27 @@ mod tests { ssz.append(&x); assert_eq!(ssz.drain(), vec![0, 0, 8, 255, 255, 255, 255, 255, 255, 255, 255]); } + + #[test] + fn test_ssz_encode_usize() { + let x: usize = 1; + let mut ssz = SszStream::new(); + ssz.append(&x); + assert_eq!(ssz.drain(), vec![0, 0, 1, 1]); + + let x: usize = 100; + let mut ssz = SszStream::new(); + ssz.append(&x); + assert_eq!(ssz.drain(), vec![0, 0, 1, 100]); + + let x: usize = 1 << 32; + let mut ssz = SszStream::new(); + ssz.append(&x); + assert_eq!(ssz.drain(), vec![0, 0, 5, 1, 0, 0, 0, 0]); + + let x: usize = !0; + let mut ssz = SszStream::new(); + ssz.append(&x); + assert_eq!(ssz.drain(), vec![0, 0, 8, 255, 255, 255, 255, 255, 255, 255, 255]); + } }