Crate auto_builder

Source
Expand description

This crate provides a derive macro to implement the builder pattern for any struct.

Deriving the Builder macro for a struct named Foo will generate a builder struct named FooBuilder with methods to set each field of Foo and a build method to create a Foo from the builder. The build method will fail if any fields have not been set. It returns a Result<Foo, String> where the String is an error message indicating which fields have not been set.

§Example

use auto_builder::Builder;

#[derive(Builder)]
struct Foo {
  bar: i32,
  baz: String,
}

let complete_foo = FooBuilder::new().bar(42).baz("hello".to_string()).build()
let incomplete_foo = FooBuilder::new().bar(42).build();

assert!(complete_foo.is_ok());
assert!(incomplete_foo.is_err());

Derive Macros§

Builder
Implement the builder pattern for the target struct