|
|
|
@ -352,9 +352,9 @@ fn test_multi_put_get_del_safe() { |
|
|
|
|
{ |
|
|
|
|
let mut iter = multistore.get(&writer, "str1").unwrap(); |
|
|
|
|
let (id, val) = iter.next().unwrap().unwrap(); |
|
|
|
|
assert_eq!((id, val), (&b"str1"[..], Some(Value::Str("str1 bar")))); |
|
|
|
|
assert_eq!((id, val), (&b"str1"[..], Value::Str("str1 bar"))); |
|
|
|
|
let (id, val) = iter.next().unwrap().unwrap(); |
|
|
|
|
assert_eq!((id, val), (&b"str1"[..], Some(Value::Str("str1 foo")))); |
|
|
|
|
assert_eq!((id, val), (&b"str1"[..], Value::Str("str1 foo"))); |
|
|
|
|
} |
|
|
|
|
writer.commit().unwrap(); |
|
|
|
|
|
|
|
|
@ -685,22 +685,22 @@ fn test_iter_safe() { |
|
|
|
|
let mut iter = sk.iter_start(&reader).unwrap(); |
|
|
|
|
let (key, val) = iter.next().unwrap().unwrap(); |
|
|
|
|
assert_eq!(str::from_utf8(key).expect("key"), "bar"); |
|
|
|
|
assert_eq!(val, Some(Value::Bool(true))); |
|
|
|
|
assert_eq!(val, Value::Bool(true)); |
|
|
|
|
let (key, val) = iter.next().unwrap().unwrap(); |
|
|
|
|
assert_eq!(str::from_utf8(key).expect("key"), "baz"); |
|
|
|
|
assert_eq!(val, Some(Value::Str("héllo, yöu"))); |
|
|
|
|
assert_eq!(val, Value::Str("héllo, yöu")); |
|
|
|
|
let (key, val) = iter.next().unwrap().unwrap(); |
|
|
|
|
assert_eq!(str::from_utf8(key).expect("key"), "foo"); |
|
|
|
|
assert_eq!(val, Some(Value::I64(1234))); |
|
|
|
|
assert_eq!(val, Value::I64(1234)); |
|
|
|
|
let (key, val) = iter.next().unwrap().unwrap(); |
|
|
|
|
assert_eq!(str::from_utf8(key).expect("key"), "héllò, töűrîst"); |
|
|
|
|
assert_eq!(val, Some(Value::Str("Emil.RuleZ!"))); |
|
|
|
|
assert_eq!(val, Value::Str("Emil.RuleZ!")); |
|
|
|
|
let (key, val) = iter.next().unwrap().unwrap(); |
|
|
|
|
assert_eq!(str::from_utf8(key).expect("key"), "noo"); |
|
|
|
|
assert_eq!(val, Some(Value::F64(1234.0.into()))); |
|
|
|
|
assert_eq!(val, Value::F64(1234.0.into())); |
|
|
|
|
let (key, val) = iter.next().unwrap().unwrap(); |
|
|
|
|
assert_eq!(str::from_utf8(key).expect("key"), "你好,遊客"); |
|
|
|
|
assert_eq!(val, Some(Value::Str("米克規則"))); |
|
|
|
|
assert_eq!(val, Value::Str("米克規則")); |
|
|
|
|
assert!(iter.next().is_none()); |
|
|
|
|
|
|
|
|
|
// Iterators don't loop. Once one returns None, additional calls
|
|
|
|
@ -712,10 +712,10 @@ fn test_iter_safe() { |
|
|
|
|
let mut iter = sk.iter_from(&reader, "moo").unwrap(); |
|
|
|
|
let (key, val) = iter.next().unwrap().unwrap(); |
|
|
|
|
assert_eq!(str::from_utf8(key).expect("key"), "noo"); |
|
|
|
|
assert_eq!(val, Some(Value::F64(1234.0.into()))); |
|
|
|
|
assert_eq!(val, Value::F64(1234.0.into())); |
|
|
|
|
let (key, val) = iter.next().unwrap().unwrap(); |
|
|
|
|
assert_eq!(str::from_utf8(key).expect("key"), "你好,遊客"); |
|
|
|
|
assert_eq!(val, Some(Value::Str("米克規則"))); |
|
|
|
|
assert_eq!(val, Value::Str("米克規則")); |
|
|
|
|
assert!(iter.next().is_none()); |
|
|
|
|
|
|
|
|
|
// Reader.iter_from() works as expected when the given key is a prefix
|
|
|
|
@ -723,10 +723,10 @@ fn test_iter_safe() { |
|
|
|
|
let mut iter = sk.iter_from(&reader, "no").unwrap(); |
|
|
|
|
let (key, val) = iter.next().unwrap().unwrap(); |
|
|
|
|
assert_eq!(str::from_utf8(key).expect("key"), "noo"); |
|
|
|
|
assert_eq!(val, Some(Value::F64(1234.0.into()))); |
|
|
|
|
assert_eq!(val, Value::F64(1234.0.into())); |
|
|
|
|
let (key, val) = iter.next().unwrap().unwrap(); |
|
|
|
|
assert_eq!(str::from_utf8(key).expect("key"), "你好,遊客"); |
|
|
|
|
assert_eq!(val, Some(Value::Str("米克規則"))); |
|
|
|
|
assert_eq!(val, Value::Str("米克規則")); |
|
|
|
|
assert!(iter.next().is_none()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -822,84 +822,84 @@ fn test_multiple_store_iter_safe() { |
|
|
|
|
let mut iter = s1.iter_start(&reader).unwrap(); |
|
|
|
|
let (key, val) = iter.next().unwrap().unwrap(); |
|
|
|
|
assert_eq!(str::from_utf8(key).expect("key"), "bar"); |
|
|
|
|
assert_eq!(val, Some(Value::Bool(true))); |
|
|
|
|
assert_eq!(val, Value::Bool(true)); |
|
|
|
|
let (key, val) = iter.next().unwrap().unwrap(); |
|
|
|
|
assert_eq!(str::from_utf8(key).expect("key"), "baz"); |
|
|
|
|
assert_eq!(val, Some(Value::Str("héllo, yöu"))); |
|
|
|
|
assert_eq!(val, Value::Str("héllo, yöu")); |
|
|
|
|
let (key, val) = iter.next().unwrap().unwrap(); |
|
|
|
|
assert_eq!(str::from_utf8(key).expect("key"), "foo"); |
|
|
|
|
assert_eq!(val, Some(Value::I64(1234))); |
|
|
|
|
assert_eq!(val, Value::I64(1234)); |
|
|
|
|
let (key, val) = iter.next().unwrap().unwrap(); |
|
|
|
|
assert_eq!(str::from_utf8(key).expect("key"), "héllò, töűrîst"); |
|
|
|
|
assert_eq!(val, Some(Value::Str("Emil.RuleZ!"))); |
|
|
|
|
assert_eq!(val, Value::Str("Emil.RuleZ!")); |
|
|
|
|
let (key, val) = iter.next().unwrap().unwrap(); |
|
|
|
|
assert_eq!(str::from_utf8(key).expect("key"), "noo"); |
|
|
|
|
assert_eq!(val, Some(Value::F64(1234.0.into()))); |
|
|
|
|
assert_eq!(val, Value::F64(1234.0.into())); |
|
|
|
|
let (key, val) = iter.next().unwrap().unwrap(); |
|
|
|
|
assert_eq!(str::from_utf8(key).expect("key"), "你好,遊客"); |
|
|
|
|
assert_eq!(val, Some(Value::Str("米克規則"))); |
|
|
|
|
assert_eq!(val, Value::Str("米克規則")); |
|
|
|
|
assert!(iter.next().is_none()); |
|
|
|
|
|
|
|
|
|
// Iterate through the whole store in "s2"
|
|
|
|
|
let mut iter = s2.iter_start(&reader).unwrap(); |
|
|
|
|
let (key, val) = iter.next().unwrap().unwrap(); |
|
|
|
|
assert_eq!(str::from_utf8(key).expect("key"), "bar"); |
|
|
|
|
assert_eq!(val, Some(Value::Bool(true))); |
|
|
|
|
assert_eq!(val, Value::Bool(true)); |
|
|
|
|
let (key, val) = iter.next().unwrap().unwrap(); |
|
|
|
|
assert_eq!(str::from_utf8(key).expect("key"), "baz"); |
|
|
|
|
assert_eq!(val, Some(Value::Str("héllo, yöu"))); |
|
|
|
|
assert_eq!(val, Value::Str("héllo, yöu")); |
|
|
|
|
let (key, val) = iter.next().unwrap().unwrap(); |
|
|
|
|
assert_eq!(str::from_utf8(key).expect("key"), "foo"); |
|
|
|
|
assert_eq!(val, Some(Value::I64(1234))); |
|
|
|
|
assert_eq!(val, Value::I64(1234)); |
|
|
|
|
let (key, val) = iter.next().unwrap().unwrap(); |
|
|
|
|
assert_eq!(str::from_utf8(key).expect("key"), "héllò, töűrîst"); |
|
|
|
|
assert_eq!(val, Some(Value::Str("Emil.RuleZ!"))); |
|
|
|
|
assert_eq!(val, Value::Str("Emil.RuleZ!")); |
|
|
|
|
let (key, val) = iter.next().unwrap().unwrap(); |
|
|
|
|
assert_eq!(str::from_utf8(key).expect("key"), "noo"); |
|
|
|
|
assert_eq!(val, Some(Value::F64(1234.0.into()))); |
|
|
|
|
assert_eq!(val, Value::F64(1234.0.into())); |
|
|
|
|
let (key, val) = iter.next().unwrap().unwrap(); |
|
|
|
|
assert_eq!(str::from_utf8(key).expect("key"), "你好,遊客"); |
|
|
|
|
assert_eq!(val, Some(Value::Str("米克規則"))); |
|
|
|
|
assert_eq!(val, Value::Str("米克規則")); |
|
|
|
|
assert!(iter.next().is_none()); |
|
|
|
|
|
|
|
|
|
// Iterate from a given key in "s1"
|
|
|
|
|
let mut iter = s1.iter_from(&reader, "moo").unwrap(); |
|
|
|
|
let (key, val) = iter.next().unwrap().unwrap(); |
|
|
|
|
assert_eq!(str::from_utf8(key).expect("key"), "noo"); |
|
|
|
|
assert_eq!(val, Some(Value::F64(1234.0.into()))); |
|
|
|
|
assert_eq!(val, Value::F64(1234.0.into())); |
|
|
|
|
let (key, val) = iter.next().unwrap().unwrap(); |
|
|
|
|
assert_eq!(str::from_utf8(key).expect("key"), "你好,遊客"); |
|
|
|
|
assert_eq!(val, Some(Value::Str("米克規則"))); |
|
|
|
|
assert_eq!(val, Value::Str("米克規則")); |
|
|
|
|
assert!(iter.next().is_none()); |
|
|
|
|
|
|
|
|
|
// Iterate from a given key in "s2"
|
|
|
|
|
let mut iter = s2.iter_from(&reader, "moo").unwrap(); |
|
|
|
|
let (key, val) = iter.next().unwrap().unwrap(); |
|
|
|
|
assert_eq!(str::from_utf8(key).expect("key"), "noo"); |
|
|
|
|
assert_eq!(val, Some(Value::F64(1234.0.into()))); |
|
|
|
|
assert_eq!(val, Value::F64(1234.0.into())); |
|
|
|
|
let (key, val) = iter.next().unwrap().unwrap(); |
|
|
|
|
assert_eq!(str::from_utf8(key).expect("key"), "你好,遊客"); |
|
|
|
|
assert_eq!(val, Some(Value::Str("米克規則"))); |
|
|
|
|
assert_eq!(val, Value::Str("米克規則")); |
|
|
|
|
assert!(iter.next().is_none()); |
|
|
|
|
|
|
|
|
|
// Iterate from a given prefix in "s1"
|
|
|
|
|
let mut iter = s1.iter_from(&reader, "no").unwrap(); |
|
|
|
|
let (key, val) = iter.next().unwrap().unwrap(); |
|
|
|
|
assert_eq!(str::from_utf8(key).expect("key"), "noo"); |
|
|
|
|
assert_eq!(val, Some(Value::F64(1234.0.into()))); |
|
|
|
|
assert_eq!(val, Value::F64(1234.0.into())); |
|
|
|
|
let (key, val) = iter.next().unwrap().unwrap(); |
|
|
|
|
assert_eq!(str::from_utf8(key).expect("key"), "你好,遊客"); |
|
|
|
|
assert_eq!(val, Some(Value::Str("米克規則"))); |
|
|
|
|
assert_eq!(val, Value::Str("米克規則")); |
|
|
|
|
assert!(iter.next().is_none()); |
|
|
|
|
|
|
|
|
|
// Iterate from a given prefix in "s2"
|
|
|
|
|
let mut iter = s2.iter_from(&reader, "no").unwrap(); |
|
|
|
|
let (key, val) = iter.next().unwrap().unwrap(); |
|
|
|
|
assert_eq!(str::from_utf8(key).expect("key"), "noo"); |
|
|
|
|
assert_eq!(val, Some(Value::F64(1234.0.into()))); |
|
|
|
|
assert_eq!(val, Value::F64(1234.0.into())); |
|
|
|
|
let (key, val) = iter.next().unwrap().unwrap(); |
|
|
|
|
assert_eq!(str::from_utf8(key).expect("key"), "你好,遊客"); |
|
|
|
|
assert_eq!(val, Some(Value::Str("米克規則"))); |
|
|
|
|
assert_eq!(val, Value::Str("米克規則")); |
|
|
|
|
assert!(iter.next().is_none()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|