macro_rules! point { ($x:expr, $y:expr, $z:expr) => { ... }; ($x:expr, $y:expr) => { ... }; ($x:expr) => { ... }; }