macro_rules! define_columns {
(
$columns_struct:ident for $model:ident table = $table:literal {
$( $field:ident => $name:literal ),* $(,)?
}
) => { ... };
}Expand description
为 Model 定义一组类型安全的字段标记
§示例
use sz_orm_core::define_columns;
struct User;
define_columns! {
UserColumns for User table = "users" {
Id => "id",
Name => "name",
Age => "age",
}
}生成如下代码:
ⓘ
#[derive(Clone, Copy)]
pub struct UserColumns;
impl UserColumns {
pub const Id: UserColumn = UserColumn { name: "id", table: "users" };
pub const Name: UserColumn = UserColumn { name: "name", table: "users" };
pub const Age: UserColumn = UserColumn { name: "age", table: "users" };
}
#[derive(Clone, Copy)]
pub struct UserColumn {
pub name: &'static str,
pub table: &'static str,
}
impl Column<User> for UserColumn {
fn name(&self) -> &'static str { self.name }
fn table(&self) -> &'static str { self.table }
}