pub trait LinearIterator<KT: PartialOrd + PartialEq + Clone> {
fn key(&self) -> Option<&KT>;
fn next(&mut self) -> Option<&KT>;
fn seek(&mut self, seek_key: &KT) -> Option<&KT>;
fn at_end(&self) -> bool;
}
pub trait LinearIterable<KT: PartialOrd + PartialEq + Clone> {
fn linear_iter(&self) -> impl LinearIterable<KT>;
}