bauer 0.5.0

A derive macro for automatically generating builders
Documentation
use bauer::Builder;

#[derive(Debug, Builder)]
#[builder(kind = "type-state", prefix = "set_", const)]
pub struct Foo {
    /// Hello
    #[builder(default = "42")]
    pub field_a: u32,
    pub field_b: bool,
    pub field_c: &'static str,
    #[builder(skip_prefix, skip_suffix, rename = "add_d", repeat)]
    pub field_d: [f64; 3],
}

fn main() {
    let builder = const {
        Foo::builder()
            .set_field_a(69)
            .set_field_b(true)
            .set_field_c("hello world")
            .add_d(std::f64::consts::PI)
            .add_d(std::f64::consts::TAU)
            .add_d(2.72)
    };

    dbg!(std::any::type_name_of_val(&builder));

    let x: Foo = builder.build();

    dbg!(x);
}