macro_rules! write_all { ($writer:ident) => { ... }; ($writer:ident, $v:expr) => { ... }; ($writer:ident, $v:expr, $($values:expr),+) => { ... }; }