pub(crate) mod level_iter;
pub(crate) mod merging_iter;
use crate::kernel::KernelResult;
#[derive(Clone, Copy)]
#[allow(dead_code)]
pub enum Seek<'s> {
First,
Last,
Backward(&'s [u8]),
}
pub trait Iter<'a> {
type Item;
fn try_next(&mut self) -> KernelResult<Option<Self::Item>>;
fn is_valid(&self) -> bool;
}
pub trait SeekIter<'a>: Iter<'a> {
fn seek(&mut self, seek: Seek<'_>) -> KernelResult<()>;
}
#[allow(dead_code)]
pub(crate) trait ForwardIter<'a>: Iter<'a> {
fn try_prev(&mut self) -> KernelResult<Option<Self::Item>>;
}