Rust 對於 Builder Pattern 的支援可以直接使用第三方的 Builder Pattern Derive 。
安裝:
$ cargo add derive_builder
使用:
#[macro_use]
extern crate derive_builder;
#[derive(Default, Builder, Debug)]
struct Channel {
token: i32,
special_info: i32,
// .. a whole bunch of other fields ..
}
fn main() {
// builder pattern
let ch = ChannelBuilder::default()
.special_info(42u8)
.token(19124)
.build()
.unwrap();
println!("{:?}", ch);
}