blockchainblock/
byteable.rs1pub trait Byteable {
3 fn bytes (&self) -> Vec<u8>;
5 }
7
8impl Byteable for i32 {
9 fn bytes(&self) -> Vec<u8> {
10 let data = &self.to_le_bytes();
11 data.to_vec()
12 }
13}
14
15impl Byteable for String{
16 fn bytes(&self) -> Vec<u8> {
17 let data = &self.as_bytes();
18 data.to_vec()
19 }
20}
21
22impl<T> Byteable for [T]
23where
24 T: Byteable,
25{
26 fn bytes(&self) -> Vec<u8> {
27 let mut data : Vec<u8> = Vec::new();
28 for x in self {
29 data.extend(x.bytes().iter().cloned());
30 }
31 data
32 }
33}