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:
- Simple setters for direct field assignment
- Nested config setters using the
with_nested!macro - Enable/disable methods for optional features
- 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",
},
}