Mercurial > lbo > hg > leveldb-rs
changeset 257:464b4a3e87d2
key_types: Allow for constructing a LookupKey with value type.
author | Lewin Bormann <lbo@spheniscida.de> |
---|---|
date | Tue, 19 Sep 2017 17:01:56 +0200 |
parents | 5e1668560f6b |
children | 584c1b892ede |
files | src/key_types.rs |
diffstat | 1 files changed, 6 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/src/key_types.rs Tue Sep 19 16:02:45 2017 +0200 +++ b/src/key_types.rs Tue Sep 19 17:01:56 2017 +0200 @@ -37,8 +37,11 @@ const U64_SPACE: usize = 8; impl LookupKey { - #[allow(unused_assignments)] - pub fn new(k: &[u8], s: SequenceNumber) -> LookupKey { + pub fn new<'a>(k: UserKey<'a>, s: SequenceNumber) -> LookupKey { + LookupKey::new_full(k, s, ValueType::TypeValue) + } + + pub fn new_full<'a>(k: UserKey<'a>, s: SequenceNumber, t: ValueType) -> LookupKey { let mut key = Vec::new(); let internal_keylen = k.len() + U64_SPACE; key.resize(k.len() + internal_keylen.required_space() + U64_SPACE, 0); @@ -47,7 +50,7 @@ let mut writer = key.as_mut_slice(); writer.write_varint(internal_keylen).expect("write to slice failed"); writer.write(k).expect("write to slice failed"); - writer.write_fixedint(s << 8 | ValueType::TypeValue as u64) + writer.write_fixedint(s << 8 | t as u64) .expect("write to slice failed"); }