Trait garage_table::schema::TableSchema[][src]

pub trait TableSchema: Send + Sync {
    type P: PartitionKey + Clone + PartialEq + Serialize + for<'de> Deserialize<'de> + Send + Sync;
    type S: SortKey + Clone + Serialize + for<'de> Deserialize<'de> + Send + Sync;
    type E: Entry<Self::P, Self::S>;
    type Filter: Clone + Serialize + for<'de> Deserialize<'de> + Send + Sync;
    fn matches_filter(entry: &Self::E, filter: &Self::Filter) -> bool;

    fn try_migrate(_bytes: &[u8]) -> Option<Self::E> { ... }
fn updated(&self, _old: Option<Self::E>, _new: Option<Self::E>) { ... } }
Expand description

Trait for the schema used in a table

Associated Types

type P: PartitionKey + Clone + PartialEq + Serialize + for<'de> Deserialize<'de> + Send + Sync[src]

The partition key used in that table

type S: SortKey + Clone + Serialize + for<'de> Deserialize<'de> + Send + Sync[src]

The sort key used int that table

type E: Entry<Self::P, Self::S>[src]

They type for an entry in that table

type Filter: Clone + Serialize + for<'de> Deserialize<'de> + Send + Sync[src]

Required methods

fn matches_filter(entry: &Self::E, filter: &Self::Filter) -> bool[src]

Provided methods

fn try_migrate(_bytes: &[u8]) -> Option<Self::E>[src]

Try migrating an entry from an older version

fn updated(&self, _old: Option<Self::E>, _new: Option<Self::E>)[src]

Implementors