// Declarative macros // macro_rules! custom_vec { // ( $( $x:expr ),* ) => { // { // let mut temp_vec = Vec::new(); // $( // temp_vec.push($x); // )* // temp_vec // } // }; // // ( $( $x:expr ),*; mult = $mult:expr ) => { // // custom_vec![$( $x * $mult ),*] // // }; // } fn main() { let mut a = Vec::new(); a.push(1); a.push(2); a.push(3); // let a = vec![1, 2, 3]; // let a = custom_vec!(1, 2, 3); // let a = custom_vec!(1, 2, 3; mult = 2); println!("{a:?}"); }