#[derive(BitsBuilder)]
{
// Attributes available to this derive:
#[builder]
}
Expand description
Generates a derive_builder-style builder for a struct (or, when listed in a
#[bitfield]’s derives, for the bitfield — intercepted by #[bitfield]).
ⓘ
#[bitfield(u16, bits = msb)]
#[derive(BitsBuilder, Clone, Copy)]
struct State {
opcode: u4, // required
#[builder(default)] // optional; 0 if unset
flags: u8,
rcode: RCode, // required
}
let s = State::builder().opcode(u4::new(2)).rcode(RCode::ServFail).build()?;Generates Foo::builder() -> FooBuilder, an Option-tracked setter per
field, and build() -> Result<Foo, bnb::BuilderError> that errors on the
first unset required field. A field is optional only with
#[builder(default)] (Default::default() if unset) or
#[builder(default = expr)]. Coexists with the infallible infix with_*.
On a #[bitfield] struct, list #[bitfield(...)] above the #[derive]
so it intercepts this marker.
See the bnb::guide::builders page for runnable examples (required-field errors,
default/default = expr, the #[bitfield] intercept).