Mercurial > lbo > hg > leveldb-rs
changeset 317:13a35941c2ff
memtable: Change return type of get() to Option<>
author | Lewin Bormann <lbo@spheniscida.de> |
---|---|
date | Fri, 29 Sep 2017 19:39:36 +0200 |
parents | 3b4c55889370 |
children | 113abed37a57 |
files | src/memtable.rs |
diffstat | 1 files changed, 10 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/src/memtable.rs Fri Sep 29 19:39:11 2017 +0200 +++ b/src/memtable.rs Fri Sep 29 19:39:36 2017 +0200 @@ -45,7 +45,7 @@ } #[allow(unused_variables)] - pub fn get(&self, key: &LookupKey) -> Result<Vec<u8>> { + pub fn get(&self, key: &LookupKey) -> Option<Vec<u8>> { let mut iter = self.map.iter(); iter.seek(key.memtable_key()); @@ -57,13 +57,13 @@ // We only care about user key equality here if key.user_key() == &foundkey[fkeyoff..fkeyoff + fkeylen] { if tag & 0xff == ValueType::TypeValue as u64 { - return Ok(foundkey[valoff..valoff + vallen].to_vec()); + return Some(foundkey[valoff..valoff + vallen].to_vec()); } else { - return err(StatusCode::NotFound, ""); + return None } } } - err(StatusCode::NotFound, "") + None } pub fn iter(&self) -> MemtableIterator { @@ -221,37 +221,37 @@ let mt = get_memtable(); // Smaller sequence number doesn't find entry - if let Ok(v) = mt.get(&LookupKey::new("abc".as_bytes(), 110)) { + if let Some(v) = mt.get(&LookupKey::new("abc".as_bytes(), 110)) { println!("{:?}", v); panic!("found"); } - if let Ok(v) = mt.get(&LookupKey::new("abf".as_bytes(), 110)) { + if let Some(v) = mt.get(&LookupKey::new("abf".as_bytes(), 110)) { println!("{:?}", v); panic!("found"); } // Bigger sequence number falls back to next smaller - if let Ok(v) = mt.get(&LookupKey::new("abc".as_bytes(), 116)) { + if let Some(v) = mt.get(&LookupKey::new("abc".as_bytes(), 116)) { assert_eq!(v, "122".as_bytes()); } else { panic!("not found"); } // Exact match works - if let Ok(v) = mt.get(&LookupKey::new("abc".as_bytes(), 120)) { + if let Some(v) = mt.get(&LookupKey::new("abc".as_bytes(), 120)) { assert_eq!(v, "123".as_bytes()); } else { panic!("not found"); } - if let Ok(v) = mt.get(&LookupKey::new("abe".as_bytes(), 122)) { + if let Some(v) = mt.get(&LookupKey::new("abe".as_bytes(), 122)) { assert_eq!(v, "125".as_bytes()); } else { panic!("not found"); } - if let Ok(v) = mt.get(&LookupKey::new("abf".as_bytes(), 129)) { + if let Some(v) = mt.get(&LookupKey::new("abf".as_bytes(), 129)) { assert_eq!(v, "126".as_bytes()); } else { panic!("not found");