macro_rules! as_socket { ($name:expr, $args:ident, $i:expr) => { ... }; ($name:expr, $obj:expr) => { ... }; }