crate::ix!();
pub trait Valid {
fn valid(&self) -> bool;
}
pub trait SeekToFirst {
fn seek_to_first(&mut self);
}
pub trait SeekToLast {
fn seek_to_last(&mut self);
}
pub trait Seek {
fn seek(&mut self, target: &Slice);
}
pub trait Next {
fn next(&mut self);
}
pub trait Prev {
fn prev(&mut self);
}
pub trait LevelDBIteratorStatus {
fn status(&self) -> crate::Status;
}
pub struct LevelDBIteratorCleanupNode {
function: LevelDBIteratorCleanupFunction,
arg1: *mut c_void,
arg2: *mut c_void,
next: *mut LevelDBIteratorCleanupNode,
}
impl LevelDBIteratorCleanupNode {
pub fn is_empty(&self) -> bool {
todo!();
}
pub fn run(&mut self) {
todo!();
}
}
pub type LevelDBIteratorCleanupFunction = fn(arg1: *mut c_void, arg2: *mut c_void) -> c_void;
#[derive(Default)]
pub struct LevelDBIteratorInner {
cleanup_head: Option<LevelDBIteratorCleanupNode>,
}
pub trait LevelDBIteratorInterface:
Valid
+ SeekToFirst
+ SeekToLast
+ Seek
+ Next
+ Prev
+ Key
+ Value
+ LevelDBIteratorStatus { }
pub fn new_empty_iterator() -> *mut LevelDBIteratorInner {
todo!();
}
pub fn new_error_iterator(status: &Status) -> *mut LevelDBIterator {
todo!();
}