Usare il builder pattern in Rust con typed-builder
typed-builder è una delle librerie che ci permette di implementare il builder pattern in Rust.
Molto facile da usare, supporta anche i parametri opzionali e i valori di default.
Per installarla possiamo aggiungere questa dipendenza al Cargo.toml:
[dependencies]
typed-builder = "0.12.0"
Qui sotto tre esempi:
use typed_builder::TypedBuilder;
#[derive(TypedBuilder)]
struct Test {
par_1: i32,
#[builder(default, setter(strip_option))]
par_2: Option<i32>,
#[builder(default = "CIAO".to_string())]
par_3: String,
}
fn main() {
let test1 = Test::builder().par_1(10).build();
println!("{} - {:?} - {}", test1.par_1, test1.par_2, test1.par_3);
let test2 = Test::builder().par_1(10).par_3("CIAO CORE".to_string()).par_2(20).build();
println!("{} - {:?} - {}", test2.par_1, test2.par_2, test2.par_3);
let test3 = Test::builder().par_1(10).par_2(13).build();
println!("{} - {:?} - {}", test3.par_1, test3.par_2, test3.par_3);
}
Enjoy!
rust cargo builder typed-builder
Commentami!