1 2 3 4 5 6 7 8 9 10 11
#[macro_export] macro_rules! builder_methods { ($( $method:ident ( $field:ident ) -> $ty:ty ),* $(,)?) => { $( pub fn $method(mut self, $field: $ty) -> Self { self.$field = Some($field); self } )* }; }