Mercurial > lbo > hg > leveldb-rs
changeset 203:02dee560e4ad
cmp, key_types: Small documentation and visibility changes.
author | Lewin Bormann <lbo@spheniscida.de> |
---|---|
date | Sun, 03 Sep 2017 17:38:46 +0200 |
parents | 344515a861ac |
children | 625af9366bba |
files | src/cmp.rs src/key_types.rs |
diffstat | 2 files changed, 7 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/src/cmp.rs Sun Sep 03 17:13:51 2017 +0200 +++ b/src/cmp.rs Sun Sep 03 17:38:46 2017 +0200 @@ -123,7 +123,7 @@ impl InternalKeyCmp { /// cmp_inner compares a and b using the underlying comparator (the "user comparator"). - fn cmp_inner(&self, a: &[u8], b: &[u8]) -> Ordering { + pub fn cmp_inner(&self, a: &[u8], b: &[u8]) -> Ordering { self.0.cmp(a, b) } }
--- a/src/key_types.rs Sun Sep 03 17:13:51 2017 +0200 +++ b/src/key_types.rs Sun Sep 03 17:38:46 2017 +0200 @@ -57,17 +57,17 @@ } } - // Returns full key + /// Returns the full memtable-formatted key. pub fn memtable_key<'a>(&'a self) -> MemtableKey<'a> { self.key.as_slice() } - // Returns only key + /// Returns only the user key portion. pub fn user_key<'a>(&'a self) -> UserKey<'a> { &self.key[self.key_offset..self.key.len() - 8] } - // Returns key+tag + /// Returns key and tag. pub fn internal_key<'a>(&'a self) -> InternalKey<'a> { &self.key[self.key_offset..] } @@ -141,6 +141,9 @@ /// Parse a key in InternalKey format. pub fn parse_internal_key<'a>(ikey: InternalKey<'a>) -> (CompressionType, u64, UserKey<'a>) { + if ikey.is_empty() { + return (CompressionType::CompressionNone, 0, &ikey[0..0]); + } assert!(ikey.len() >= 8); let (ctype, seq) = parse_tag(FixedInt::decode_fixed(&ikey[ikey.len() - 8..]));