use databaseinfo::DatabaseInfo; use std::borrow::Cow; use std::cmp::Eq; use std::hash::Hash; pub trait DatabaseStorage { type Info: DatabaseInfo; fn scan_table<'a>(&'a self, table: &'a ::Table) -> Box::ColumnValue> + 'a>; } pub trait Group { type ColumnValue: Sized + Clone + Eq + Hash + 'static; /// Returns any arbitrary row in the group. /// Returns None if the group contains no rows. fn get_any_row<'a>(&'a self) -> Option>; fn count(&self) -> u64; fn iter<'a>(&'a self) -> Box> + 'a>; }