| 37 | |
| 38 | impl TreeSerialization for CommitListItem { |
| 39 | fn serialize(&self) -> Vec<u8> { |
| 40 | let mut serialized = Vec::new(); |
| 41 | |
| 42 | serialized.extend_from_slice(self.hash.to_le_bytes().as_ref()); |
| 43 | serialized.extend_from_slice(self.timestamp.to_le_bytes().as_ref()); |
| 44 | |
| 45 | serialized.extend_from_slice(self.vectors.len().to_le_bytes().as_ref()); |
| 46 | for vector in &self.vectors { |
| 47 | serialized.extend_from_slice(vector.as_ref()); |
| 48 | } |
| 49 | |
| 50 | serialized.extend_from_slice(self.kvs.len().to_le_bytes().as_ref()); |
| 51 | for sub_kvs in &self.kvs { |
| 52 | serialized.extend_from_slice(sub_kvs.len().to_le_bytes().as_ref()); |
| 53 | for kv in sub_kvs { |
| 54 | serialized.extend_from_slice(&kv.serialize()); |
| 55 | } |
| 56 | } |
| 57 | |
| 58 | serialized |
| 59 | } |
| 60 | } |
| 61 | |
| 62 | impl TreeDeserialization for CommitListItem { |