pub trait TableDefinition {
type KeySchema: KeySchema;
// Required method
fn table_name() -> String;
}Expand description
Defines a DynamoDB table: its name and key schema.
Implementations are generated by table_definitions!.
The associated KeySchema determines whether the table uses a simple or
composite key, and which attribute definitions serve as partition and sort keys.
All items, keys, and operation builders are scoped to a specific table through this trait, ensuring you cannot accidentally mix items or keys from different tables.
§Examples
use dynamodb_facade::{table_definitions, TableDefinition};
table_definitions! {
MyTable {
type PartitionKey = PK;
type SortKey = SK;
fn table_name() -> String { "platform".to_owned() }
}
}
fn expect_table<TD: TableDefinition>() {}
expect_table::<MyTable>();
assert_eq!(MyTable::table_name(), "platform");Required Associated Types§
Required Methods§
Sourcefn table_name() -> String
fn table_name() -> String
Returns the DynamoDB table name.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.