Skip to content
WARNING

You are viewing the docs for an older major version of bon (v2).

Click here to view the docs for the latest version (v3).

Inspecting

If you want to inspect the values set in the builder for debugging purposes you can leverage the #[builder(derive(...))] attribute to derive the Debug trait for your builder.

Example:

rust
use bon::builder;

#[builder(derive(Debug))] 
fn example(
    name: String,
    is_admin: bool,
    level: Option<u32>,
) {}

let builder = example().name("Bon".to_owned());

// This will output the current state of the builder to `stderr`
dbg!(&builder);

// You can also format the debug output to `String`:
assert_eq!(
    format!("{builder:?}"),
    // Only the fields that were set will be output
    r#"ExampleBuilder { name: "Bon" }"#
);

// Finish building
builder.is_admin(true).call();

You can also derive the Clone trait for your builder using this same attribute. See more details in the reference for the #[builder(derive(...))] attribute.