Skip to content

Commit

Permalink
implement mpt
Browse files Browse the repository at this point in the history
  • Loading branch information
morph-dev committed Apr 2, 2024
1 parent a516fb0 commit 1400624
Show file tree
Hide file tree
Showing 15 changed files with 48,735 additions and 8 deletions.
2 changes: 1 addition & 1 deletion db/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,5 @@ pub mod memory_db;
pub trait Db<K, V> {
fn write(&mut self, key: K, value: V) -> Result<(), DbError>;

fn read(&self, key: &K) -> Result<Option<&V>, DbError>;
fn read(&self, key: &K) -> Result<Option<V>, DbError>;
}
12 changes: 6 additions & 6 deletions db/src/memory_db.rs
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,14 @@ impl<K, V> MemoryDb<K, V> {
}
}

impl<K: Hash + Eq, V> Db<K, V> for MemoryDb<K, V> {
impl<K: Hash + Eq, V: Clone> Db<K, V> for MemoryDb<K, V> {
fn write(&mut self, key: K, value: V) -> Result<(), DbError> {
self.data.insert(key, value);
Ok(())
}

fn read(&self, key: &K) -> Result<Option<&V>, DbError> {
Ok(self.data.get(key))
fn read(&self, key: &K) -> Result<Option<V>, DbError> {
Ok(self.data.get(key).cloned())
}
}

Expand All @@ -45,7 +45,7 @@ mod tests {
let key = [1u8, 2, 3, 4];
let value = [1u16, 1, 2, 3, 5, 8, 13, 21];
assert_ok!(memory_db.write(key, value.clone()));
assert_ok_eq!(memory_db.read(&key), Some(&value));
assert_ok_eq!(memory_db.read(&key), Some(value));
}

#[test]
Expand All @@ -56,9 +56,9 @@ mod tests {
let value2 = [1u16, 1, 2, 3, 5, 8, 13, 21];

assert_ok!(memory_db.write(key, value1.clone()));
assert_ok_eq!(memory_db.read(&key), Some(&value1));
assert_ok_eq!(memory_db.read(&key), Some(value1));

assert_ok!(memory_db.write(key, value2.clone()));
assert_ok_eq!(memory_db.read(&key), Some(&value2));
assert_ok_eq!(memory_db.read(&key), Some(value2));
}
}
Loading

0 comments on commit 1400624

Please sign in to comment.