macro_rules! url {
($scheme:literal, $host:literal) => { ... };
($scheme:literal, $host:literal, $path:literal) => { ... };
($scheme:literal, $host:literal, $path:literal, $frag:literal) => { ... };
($scheme:literal, $host:literal, $path:literal,{$($qk:literal,$qv:literal)+}) => { ... };
($scheme:literal, $host:literal, $path:literal, $frag:literal, {$($qk:literal,$qv:literal)+}) => { ... };
}