Skip to main content

impl_complete_builder

Macro impl_complete_builder 

Source
macro_rules! impl_complete_builder {
    (
        builder: $builder:ident,
        config_field: $config_field:ident,
        simple_setters: {
            $($simple_field:ident: $simple_type:ty => $simple_doc:literal),* $(,)?
        }
    ) => { ... };
    (
        builder: $builder:ident,
        config_field: $config_field:ident,
        nested_setters: {
            $($nested_path:ident: $nested_type:ty => {
                $($nested_field:ident: $nested_field_type:ty => $nested_doc:literal),* $(,)?
            }),* $(,)?
        }
    ) => { ... };
    (
        builder: $builder:ident,
        config_field: $config_field:ident,
        enable_methods: {
            $($enable_method:ident => $enable_field:ident: $enable_type:ty => $enable_doc:literal),* $(,)?
        }
    ) => { ... };
}
Expand description

Comprehensive builder macro for generating common builder method patterns.

This macro generates multiple types of builder methods to reduce code duplication:

  1. Simple setters for direct field assignment
  2. Nested config setters using the with_nested! macro
  3. Enable/disable methods for optional features
  4. Dynamic batching configuration methods

ยงUsage

// impl_complete_builder! {
//     builder: MyBuilder,
//     config_field: config,

//     // Simple setters
//     simple_setters: {
//         field_name: FieldType => "Documentation for the setter",
//     },

//     // Nested config setters
//     nested_setters: {
//         config_path: ConfigType => {
//             field_name: FieldType => "Documentation",
//         },
//     },

//     // Enable/disable methods
//     enable_methods: {
//         method_name => config_field: DefaultType => "Documentation",
//     },
// }