diff --git a/memorydb/Cargo.toml b/memorydb/Cargo.toml index 8d33b09..5c2adaa 100644 --- a/memorydb/Cargo.toml +++ b/memorydb/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "memorydb" -version = "0.2.0" +version = "0.2.1" authors = ["Parity Technologies "] description = "in-memory implementation of hashdb" license = "GPL-3.0" diff --git a/memorydb/src/lib.rs b/memorydb/src/lib.rs index 5387389..d49ce9d 100644 --- a/memorydb/src/lib.rs +++ b/memorydb/src/lib.rs @@ -46,7 +46,7 @@ type FastMap = HashMap<::Out, T, hash::BuildHasherDefault< /// extern crate hashdb; /// extern crate keccak_hasher; /// extern crate memorydb; -/// +/// /// use hashdb::*; /// use keccak_hasher::KeccakHasher; /// use memorydb::*; @@ -81,12 +81,16 @@ type FastMap = HashMap<::Out, T, hash::BuildHasherDefault< /// assert!(!m.contains(&k)); /// } /// ``` -#[derive(Default, Clone, PartialEq)] +#[derive(Clone, PartialEq)] pub struct MemoryDB { data: FastMap, hashed_null_node: H::Out, } +impl Default for MemoryDB { + fn default() -> Self { Self::new() } +} + impl MemoryDB { /// Create a new instance of the memory DB. pub fn new() -> MemoryDB { @@ -103,11 +107,11 @@ impl MemoryDB { /// extern crate hashdb; /// extern crate keccak_hasher; /// extern crate memorydb; - /// + /// /// use hashdb::*; /// use keccak_hasher::KeccakHasher; /// use memorydb::*; - /// + /// /// fn main() { /// let mut m = MemoryDB::::new(); /// let hello_bytes = "Hello world!".as_bytes(); @@ -341,4 +345,11 @@ mod tests { assert_eq!(overlay.get(&insert_key).unwrap(), &(DBValue::from_slice(b"arf"), 2)); assert_eq!(overlay.get(&negative_remove_key).unwrap(), &(DBValue::from_slice(b"negative"), -2)); } + + #[test] + fn default_works() { + let mut db = MemoryDB::::default(); + let hashed_null_node = KeccakHasher::hash(&NULL_RLP); + assert_eq!(db.insert(&NULL_RLP), hashed_null_node); + } }