No more worrying whether the build
call on your builder will return Ok
or not. Maybe you forgot to set a field? typesafe-builders
solves this by using the Rust type-system to ensure correct usage.
```rust fn example() { #[derive(Builder)] struct Point { x: u8, y: u8, }
let builder = Point::builder();
let partial = builder.with_x(5);
// These do not compile:
// partial.with_x(8);
// partial.build();
// Infallibly construct an instance:
let result = partial.with_y(8).build();
assert_eq!(result.x, 5);
assert_eq!(result.y, 8);
} ```
Const generic one-hot bitfields. What you get is similar to this:
```rust
pub struct Builder
impl impl // The build function is only available once all fields are set:
impl Builder }
```}
TODOS