adana_db/
batch.rs

1use super::{Key, Value};
2
3#[derive(Debug)]
4pub enum OpType<K: Key, V: Value> {
5    Insert((K, V)),
6}
7
8#[derive(Debug, Default)]
9pub struct Batch<K: Key, V: Value>(Vec<OpType<K, V>>);
10
11impl<K: Key, V: Value> Batch<K, V> {
12    pub fn add_insert(&mut self, k: K, v: V) {
13        self.0.push(OpType::Insert((k, v)));
14    }
15}
16impl<K: Key, V: Value> Iterator for Batch<K, V> {
17    type Item = OpType<K, V>;
18
19    fn next(&mut self) -> Option<Self::Item> {
20        if self.0.is_empty() { None } else { Some(self.0.remove(0)) }
21    }
22}