pub trait Builder {
type Output;
// Required method
fn build(self) -> Self::Output;
}
Expand description
A trait provides build()
method
- Auto implemented to struct generated by
#[generate_builder]
- if there are any
None
in struct, it returnsNone
§Examples
use patternize::builder::generate_builder;
// don't have to use for struct generated by `#[generate_builder]`
// use patternize::builder::Builder
#[derive(Debug, PartialEq)]
#[generate_builder]
struct Example {
data: usize
}
fn main(){
let example: Option<Example> = ExampleBuilder::new()
.with_data(0)
.build(); // same as <ExampleBuilder as Builder>::build(self)
let none = ExampleBuilder::new()
.build();
assert_eq!(none, None);
}