use crate::{database::Database, misc::Lease};
pub trait Records<'exec>: Default + Lease<Self> {
type Database: Database;
fn get(&self, record_idx: usize) -> Option<<Self::Database as Database>::Record<'exec>>;
fn iter(&self) -> impl Iterator<Item = <Self::Database as Database>::Record<'exec>>;
fn len(&self) -> usize;
}
impl<'exec> Records<'exec> for () {
type Database = ();
#[inline]
fn get(&self, _: usize) -> Option<<Self::Database as Database>::Record<'exec>> {
None
}
#[inline]
fn iter(&self) -> impl Iterator<Item = <Self::Database as Database>::Record<'exec>> {
[].into_iter()
}
#[inline]
fn len(&self) -> usize {
0
}
}