macro_rules! impl_required_builder {
(
$request_name:ident,
$builder_name:ident,
required: [$($req_field:ident: $req_type:ty),* $(,)?],
optional: [$($opt_field:ident: $opt_type:ty),* $(,)?]
) => { ... };
}Expand description
强制构建器宏
为 Request 结构生成类型安全的 Builder,确保必填字段在编译时被验证。
§参数说明
$request_name: 请求结构体名称$builder_name: 构建器结构体名称required: [...]: 必填字段列表(格式:field_name: FieldType)optional: [...]: 可选字段列表(格式:field_name: FieldType)
§生成内容
该宏会生成:
- Builder 结构体(所有字段都是
Option<T>) - Builder::new() 和 Builder::default() 方法
- 每个字段的 setter 方法
- Builder::build() 方法(验证必填字段)
- Request::builder() 关联方法
§示例
ⓘ
impl_required_builder!(
CreateRecordRequest,
CreateRecordBuilder,
required: [
app_token: String,
table_id: String
],
optional: [
user_id_type: String,
client_token: String
]
);