pub trait IteratorFactory {
type Direction: HummockIteratorDirection;
type SstableIteratorType: SstableIteratorType<Direction = Self::Direction>;
// Required methods
fn add_batch_iter(&mut self, batch: SharedBufferBatch);
fn add_staging_sst_iter(&mut self, sst: Self::SstableIteratorType);
fn add_overlapping_sst_iter(&mut self, iter: Self::SstableIteratorType);
fn add_concat_sst_iter(
&mut self,
tables: Vec<SstableInfo>,
sstable_store: SstableStoreRef,
read_options: Arc<SstableIteratorReadOptions>,
);
}