RLP encoder refactoring

This commit is contained in:
arkpar
2016-01-27 12:14:57 +01:00
parent e61d1f810e
commit 40314614f7
15 changed files with 234 additions and 178 deletions

View File

@@ -89,17 +89,17 @@ impl<'a> Node<'a> {
let mut stream = RlpStream::new();
match *self {
Node::Leaf(ref slice, ref value) => {
stream.append_list(2);
stream.begin_list(2);
stream.append(&slice.encoded(true));
stream.append(value);
},
Node::Extension(ref slice, ref raw_rlp) => {
stream.append_list(2);
stream.begin_list(2);
stream.append(&slice.encoded(false));
stream.append_raw(raw_rlp, 1);
},
Node::Branch(ref nodes, ref value) => {
stream.append_list(17);
stream.begin_list(17);
for i in 0..16 {
stream.append_raw(nodes[i], 1);
}

View File

@@ -684,11 +684,11 @@ mod tests {
fn random_value_indexed(j: usize) -> Bytes {
match random::<usize>() % 2 {
0 => encode(&j),
0 => encode(&j).to_vec(),
_ => {
let mut h = H256::new();
h.as_slice_mut()[31] = j as u8;
encode(&h)
encode(&h).to_vec()
},
}
}
@@ -1035,7 +1035,7 @@ mod tests {
let alphabet = b"@QWERTYUIOPASDFGHJKLZXCVBNM[/]^_";
for j in 0..4u32 {
let key = random_key(alphabet, 5, 1);
x.push((key, encode(&j)));
x.push((key, encode(&j).to_vec()));
}
let real = trie_root(x.clone());
let mut memdb = MemoryDB::new();