Trait Builder

Source
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 returns None

§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);
}

Required Associated Types§

Required Methods§

Source

fn build(self) -> Self::Output

Implementors§