easy_sqlite/traits/
table.rs1use crate::entities::types::{SStr, SVec};
2
3pub trait ITable {
4 const PK: SStr = "";
6 const NAME: SStr;
8 const COLUMNS: SVec<(SStr, SStr)>;
10 const INDEXES: SVec<SStr> = &[];
12 const UNIQUE: SVec<SStr> = &[];
14 const FOREIGN_KEYS: SVec<(SStr, SStr, SStr)> = &[];
16
17 fn get_columns_as_str(exclude: &[&str]) -> String {
18 Self::COLUMNS
19 .iter()
20 .filter(|(c, _)| !exclude.contains(c))
21 .map(|(c, _)| format!("`{}`", c))
22 .collect::<Vec<_>>()
23 .join(",")
24 }
25}