2015-03-28 10:14:30 -06:00
|
|
|
use databaseinfo::DatabaseInfo;
|
2015-04-06 03:17:48 -06:00
|
|
|
use std::borrow::Cow;
|
2015-03-27 19:08:31 -06:00
|
|
|
|
|
|
|
pub trait DatabaseStorage {
|
|
|
|
type Info: DatabaseInfo;
|
|
|
|
|
2015-03-29 17:31:43 -06:00
|
|
|
fn scan_table<'a>(&'a self, table: &'a <Self::Info as DatabaseInfo>::Table)
|
2015-03-31 12:51:25 -06:00
|
|
|
-> Box<Group<ColumnValue=<Self::Info as DatabaseInfo>::ColumnValue> + 'a>;
|
|
|
|
}
|
|
|
|
|
|
|
|
pub trait Group {
|
|
|
|
type ColumnValue: Sized + 'static;
|
|
|
|
|
2015-04-06 03:17:48 -06:00
|
|
|
fn iter<'a>(&'a self) -> Box<Iterator<Item=Cow<'a, [Self::ColumnValue]>> + 'a>;
|
2015-03-27 19:08:31 -06:00
|
|
|
}
|