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");
         }