Fix warnings, use Prototype.
This commit is contained in:
parent
2d556d6f06
commit
7fd6252772
25
src/trie.rs
25
src/trie.rs
@ -34,6 +34,10 @@ struct Diff {
|
|||||||
old: Vec<H256>,
|
old: Vec<H256>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl Diff {
|
||||||
|
pub fn new() -> Diff { Diff { new: vec![], old: vec![] }}
|
||||||
|
}
|
||||||
|
|
||||||
impl TrieDB {
|
impl TrieDB {
|
||||||
pub fn new<T>(db: T) -> Self where T: HashDB + 'static { TrieDB{ db: Box::new(db), root: H256::new() } }
|
pub fn new<T>(db: T) -> Self where T: HashDB + 'static { TrieDB{ db: Box::new(db), root: H256::new() } }
|
||||||
|
|
||||||
@ -51,11 +55,11 @@ impl TrieDB {
|
|||||||
|
|
||||||
fn add(&mut self, key: &NibbleSlice, value: &[u8]) {
|
fn add(&mut self, key: &NibbleSlice, value: &[u8]) {
|
||||||
// determine what the new root is, insert new nodes and remove old as necessary.
|
// determine what the new root is, insert new nodes and remove old as necessary.
|
||||||
let mut todo: (Bytes, Diff);
|
let todo =
|
||||||
{
|
{
|
||||||
let root_rlp = self.db.lookup(&self.root).unwrap();
|
let root_rlp = self.db.lookup(&self.root).unwrap();
|
||||||
todo = self.merge(root_rlp, key, value);
|
self.merge(root_rlp, key, value)
|
||||||
}
|
};
|
||||||
self.apply(todo.1);
|
self.apply(todo.1);
|
||||||
self.set_root_rlp(&todo.0);
|
self.set_root_rlp(&todo.0);
|
||||||
}
|
}
|
||||||
@ -76,18 +80,19 @@ impl TrieDB {
|
|||||||
/// The database will be updated so as to make the returned RLP valid through inserting
|
/// The database will be updated so as to make the returned RLP valid through inserting
|
||||||
/// and deleting nodes as necessary.
|
/// and deleting nodes as necessary.
|
||||||
fn merge(&self, old: &[u8], partial_key: &NibbleSlice, value: &[u8]) -> (Bytes, Diff) {
|
fn merge(&self, old: &[u8], partial_key: &NibbleSlice, value: &[u8]) -> (Bytes, Diff) {
|
||||||
unimplemented!();
|
let o = Rlp::new(old);
|
||||||
/* let o = Rlp::new(old);
|
match o.prototype() {
|
||||||
match (o.type()) {
|
Prototype::List(17) => {
|
||||||
List(17) => {
|
|
||||||
// already have a branch. route and merge.
|
// already have a branch. route and merge.
|
||||||
|
unimplemented!();
|
||||||
},
|
},
|
||||||
List(2) => {
|
Prototype::List(2) => {
|
||||||
// already have an extension. either fast_forward, cleve or transmute_to_branch.
|
// already have an extension. either fast_forward, cleve or transmute_to_branch.
|
||||||
|
unimplemented!();
|
||||||
},
|
},
|
||||||
Data(0) => compose_extension(partial_key),
|
Prototype::Data(0) => (Self::compose_extension(partial_key, value, true), Diff::new()),
|
||||||
_ => panic!("Invalid RLP for node."),
|
_ => panic!("Invalid RLP for node."),
|
||||||
}*/
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn compose_extension(partial_key: &NibbleSlice, value: &[u8], is_leaf: bool) -> Bytes {
|
fn compose_extension(partial_key: &NibbleSlice, value: &[u8], is_leaf: bool) -> Bytes {
|
||||||
|
Loading…
Reference in New Issue
Block a user