| 2138 | } |
| 2139 | |
| 2140 | fn simdeck_pair_url( |
| 2141 | primary_url: &str, |
| 2142 | pairing_code: &str, |
| 2143 | server_id: Option<&str>, |
| 2144 | addresses: &[PairingAddress], |
| 2145 | ) -> String { |
| 2146 | let mut url = format!( |
| 2147 | "simdeck://pair?u={}&c={}", |
| 2148 | percent_encode(&pairing_address_value(primary_url)), |
| 2149 | percent_encode(pairing_code) |
| 2150 | ); |
| 2151 | if let Some(server_id) = server_id.filter(|value| !value.is_empty()) { |
| 2152 | url.push_str("&s="); |
| 2153 | url.push_str(&percent_encode(server_id)); |
| 2154 | } |
| 2155 | for address in addresses |
| 2156 | .iter() |
| 2157 | .filter(|address| address.url != primary_url && address.kind != "local") |
| 2158 | { |
| 2159 | url.push_str("&a="); |
| 2160 | url.push_str(&percent_encode(&pairing_address_value(&address.url))); |
| 2161 | } |
| 2162 | url |
| 2163 | } |
| 2164 | |
| 2165 | fn simdeck_open_link( |
| 2166 | base: &str, |