Mercurial > lbo > hg > leveldb-rs
changeset 328:b5d3a9d12fa0
key_types: Fix return type of parse_internal_key and add truncate_to_userkey()
author | Lewin Bormann <lbo@spheniscida.de> |
---|---|
date | Sun, 01 Oct 2017 20:38:07 +0200 |
parents | 63389f1585f0 |
children | 036e3084f8f0 |
files | src/key_types.rs |
diffstat | 1 files changed, 8 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/key_types.rs Sun Oct 01 20:37:42 2017 +0200 +++ b/src/key_types.rs Sun Oct 01 20:38:07 2017 +0200 @@ -149,7 +149,7 @@ } /// Parse a key in InternalKey format. -pub fn parse_internal_key<'a>(ikey: InternalKey<'a>) -> (ValueType, u64, UserKey<'a>) { +pub fn parse_internal_key<'a>(ikey: InternalKey<'a>) -> (ValueType, SequenceNumber, UserKey<'a>) { if ikey.is_empty() { return (ValueType::TypeDeletion, 0, &ikey[0..0]); } @@ -158,6 +158,13 @@ return (typ, seq, &ikey[0..ikey.len() - 8]); } +/// truncate_to_userkey performs an in-place conversion from InternalKey to UserKey format. +pub fn truncate_to_userkey(ikey: &mut Vec<u8>) { + let len = ikey.len(); + assert!(len > 8); + ikey.truncate(len-8); +} + #[cfg(test)] mod tests { use super::*;