pub struct KvReader<K> { /* private fields */ }
Expand description
A reader of obkv
databases.
Implementations§
Source§impl<K> KvReader<K>
impl<K> KvReader<K>
Sourcepub fn from_slice(bytes: &[u8]) -> &KvReader<K>
pub fn from_slice(bytes: &[u8]) -> &KvReader<K>
Construct a reader on top of a memory area.
use obkv::KvReaderU16;
let reader = KvReaderU16::from_slice(&[][..]);
let mut iter = reader.iter();
assert_eq!(iter.next(), None);
Sourcepub fn get(&self, requested_key: K) -> Option<&[u8]>where
K: Key + PartialOrd,
pub fn get(&self, requested_key: K) -> Option<&[u8]>where
K: Key + PartialOrd,
Returns the value associated with the given key
or None
if the key is not present.
use obkv::{KvWriterU16, KvReaderU16};
let mut writer = KvWriterU16::memory();
writer.insert(0, b"hello").unwrap();
writer.insert(1, b"blue").unwrap();
writer.insert(255, b"world").unwrap();
let obkv = writer.into_inner().unwrap();
let reader: &KvReaderU16 = obkv[..].into();
assert_eq!(reader.get(0), Some(&b"hello"[..]));
assert_eq!(reader.get(1), Some(&b"blue"[..]));
assert_eq!(reader.get(10), None);
assert_eq!(reader.get(255), Some(&b"world"[..]));
Sourcepub fn iter(&self) -> Fuse<KvIter<'_, K>>where
K: Key,
pub fn iter(&self) -> Fuse<KvIter<'_, K>>where
K: Key,
Returns an iterator over all the keys in the key-value store.
use obkv::{KvWriterU16, KvReaderU16};
let mut writer = KvWriterU16::memory();
writer.insert(0, b"hello").unwrap();
writer.insert(1, b"blue").unwrap();
writer.insert(255, b"world").unwrap();
let obkv = writer.into_inner().unwrap();
let reader: &KvReaderU16 = obkv[..].into();
let mut iter = reader.iter();
assert_eq!(iter.next(), Some((0, &b"hello"[..])));
assert_eq!(iter.next(), Some((1, &b"blue"[..])));
assert_eq!(iter.next(), Some((255, &b"world"[..])));
assert_eq!(iter.next(), None);
assert_eq!(iter.next(), None); // is it fused?
Trait Implementations§
Source§impl<'a, K> From<&'a [u8]> for &'a KvReader<K>
Construct a reader on top of a memory area.
impl<'a, K> From<&'a [u8]> for &'a KvReader<K>
Construct a reader on top of a memory area.
use obkv::KvReaderU16;
let reader: &KvReaderU16 = [][..].into();
let mut iter = reader.iter();
assert_eq!(iter.next(), None);
Source§impl<K> From<Box<[u8]>> for Box<KvReader<K>>
Construct a reader on top of a memory area.
impl<K> From<Box<[u8]>> for Box<KvReader<K>>
Construct a reader on top of a memory area.
use obkv::KvReaderU16;
let reader: Box<KvReaderU16> = Vec::new().into_boxed_slice().into();
let mut iter = reader.iter();
assert_eq!(iter.next(), None);