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",
// },
// }