#[derive(GenSelect)]
{
// Attributes available to this derive:
#[select]
}
Expand description
过程宏入口点,用于处理 #[select(...)]
属性宏。
此宏处理结构体定义上的 #[select(...)]
属性,用于生成符合 SelectAttributeMacro
trait 的实现。这允许在结构体字段级别上定义如何处理 SQL 字段,例如忽略某些字段,
或将字段重命名。
字段宏参数:
ignore
- 忽略该字段rename
- 字段重命名
§返回值
返回 TokenStream,包含了生成的 trait 实现代码。
§使用示例
ⓘ
use sql_tool_core::SelectAttributeMacro;
#[derive(GenSelect, Debug)]
struct MyStruct {
field1: i32,
#[select(ignore)]
field2: i32,
#[select(rename = "NULL::varchar as city_name")]
field3: i32,
#[select(rename = "CASE WHEN f.follower_id IS NOT NULL THEN TRUE ELSE FALSE END AS is_followed")]
field4: bool,
}
MyStruct::generate_fields_clause(); // 输出:["field1", "NULL::varchar as city_name", "CASE WHE..."]