Skip to main content

impl_required_builder

Macro impl_required_builder 

Source
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

§生成内容

该宏会生成:

  1. Builder 结构体(所有字段都是 Option<T>
  2. Builder::new() 和 Builder::default() 方法
  3. 每个字段的 setter 方法
  4. Builder::build() 方法(验证必填字段)
  5. Request::builder() 关联方法

§示例

impl_required_builder!(
    CreateRecordRequest,
    CreateRecordBuilder,
    required: [
        app_token: String,
        table_id: String
    ],
    optional: [
        user_id_type: String,
        client_token: String
    ]
);