#[builder]Expand description
Implements the builder pattern for a struct, with optional getter and setter methods.
§Field Attributes
#[builder(getter)]: Generates a getter method for the field#[builder(setter)]: Generates a setter method for the field#[builder(getter, setter)]: Generates both getter and setter methods#[builder(default)]: Field usesDefault::default()if not provided#[builder(default = "expression")]: Field uses custom default expression#[builder(optional)]: ForOption<T>fields, defaults toNone
§Example
ⓘ
use service_builder::builder;
#[builder]
struct Service {
#[builder(getter)]
name: String,
#[builder(setter)]
count: i32,
#[builder(getter, setter)]
enabled: bool,
}
let mut service = Service::builder()
.name("test".to_string())
.count(42)
.enabled(true)
.build()
.unwrap();
// Use generated getter
assert_eq!(service.get_name(), &"test".to_string());
// Use generated setter
service.set_count(100);
service.set_enabled(false);