Trait garage_table::schema::TableSchema
source · pub trait TableSchema: Send + Sync + 'static {
type P: PartitionKey;
type S: SortKey;
type E: Entry<Self::P, Self::S>;
type Filter: Clone + Serialize + for<'de> Deserialize<'de> + Send + Sync + 'static;
const TABLE_NAME: &'static str;
// Required method
fn matches_filter(entry: &Self::E, filter: &Self::Filter) -> bool;
// Provided method
fn updated(
&self,
_tx: &mut Transaction<'_>,
_old: Option<&Self::E>,
_new: Option<&Self::E>
) -> TxOpResult<()> { ... }
}
Expand description
Trait for the schema used in a table
Required Associated Types§
sourcetype P: PartitionKey
type P: PartitionKey
The partition key used in that table
Required Associated Constants§
sourceconst TABLE_NAME: &'static str
const TABLE_NAME: &'static str
The name of the table in the database
Required Methods§
fn matches_filter(entry: &Self::E, filter: &Self::Filter) -> bool
Provided Methods§
sourcefn updated(
&self,
_tx: &mut Transaction<'_>,
_old: Option<&Self::E>,
_new: Option<&Self::E>
) -> TxOpResult<()>
fn updated( &self, _tx: &mut Transaction<'_>, _old: Option<&Self::E>, _new: Option<&Self::E> ) -> TxOpResult<()>
Actions triggered by data changing in a table. If such actions include updates to the local database that should be applied atomically with the item update itself, a db transaction is provided on which these changes should be done. This function can return a DB error but that’s all.
Object Safety§
This trait is not object safe.