#[derive(Debug, Default)]
pub struct MSetBuilder<'a> {
inner: Vec<&'a [u8]>,
}
impl<'a> MSetBuilder<'a> {
pub fn new() -> Self {
Self { inner: Vec::new() }
}
pub(crate) fn build(&'a self) -> impl Iterator<Item = &'a &'a [u8]> {
self.inner.iter()
}
#[inline]
pub fn append<K, V>(&'a mut self, key: &'a K, value: &'a V)
where
K: AsRef<[u8]>,
V: AsRef<[u8]>,
{
self.inner.push(key.as_ref());
self.inner.push(value.as_ref());
}
#[inline]
pub fn set<K, V>(mut self, key: &'a K, value: &'a V) -> Self
where
K: AsRef<[u8]>,
V: AsRef<[u8]>,
{
self.inner.push(key.as_ref());
self.inner.push(value.as_ref());
self
}
}