Function bonsaidb::core::key::decode_composite_field[][src]

pub fn decode_composite_field<'a, T>(
    bytes: &'a [u8]
) -> Result<(T, &'a [u8]), CompositeKeyError> where
    T: Key<'a>, 
Expand description

Decodes a value previously encoded using encode_composite_field(). The result is a tuple with the first element being the decoded value, and the second element is the remainig byte slice.


let value1 = String::from("hello");
let value2 = 42_u32;
let mut key_bytes = Vec::new();
encode_composite_field(&value1, &mut key_bytes).unwrap();
encode_composite_field(&value2, &mut key_bytes).unwrap();

let (decoded_string, remaining_bytes) = decode_composite_field::<String>(&key_bytes).unwrap();
assert_eq!(decoded_string, value1);
let (decoded_u32, remaining_bytes) = decode_composite_field::<u32>(&remaining_bytes).unwrap();
assert_eq!(decoded_u32, value2);
assert!(remaining_bytes.is_empty());