e164_phones_countries/
lib.rs

1//#![feature(test)]
2//extern crate test;
3
4use std::collections::HashMap;
5
6#[test]
7fn find_iso_3166_test() {
8    assert_eq!("US",find_iso_3166("12069359290"));
9    assert_eq!("", find_iso_3166("12229359290"));
10    assert_eq!("UZ", find_iso_3166("99893592902"));
11    assert_eq!("YT", find_iso_3166("26226992902"));
12}
13
14#[test]
15fn find_phone_cc_test() {
16    assert_eq!("1", find_phone_cc("US"));
17    assert_eq!("", find_phone_cc("ZZ"));
18}
19
20pub fn find_iso_3166(phone:&str) -> &'static str {
21    let mut phone_prefix = HashMap::new();
22	    phone_prefix.insert(1201, "US");
23	    phone_prefix.insert(1202, "US");
24		phone_prefix.insert(1203, "US");
25		phone_prefix.insert(1204, "CA");
26		phone_prefix.insert(1205, "US");
27		phone_prefix.insert(1206, "US");
28		phone_prefix.insert(1207, "US");
29		phone_prefix.insert(1208, "US");
30		phone_prefix.insert(1209, "US");
31		phone_prefix.insert(1210, "US");
32		phone_prefix.insert(1212, "US");
33		phone_prefix.insert(1213, "US");
34		phone_prefix.insert(1214, "US");
35		phone_prefix.insert(1215, "US");
36		phone_prefix.insert(1216, "US");
37		phone_prefix.insert(1217, "US");
38		phone_prefix.insert(1218, "US");
39		phone_prefix.insert(1219, "US");
40		phone_prefix.insert(1224, "US");
41		phone_prefix.insert(1225, "US");
42		phone_prefix.insert(1226, "CA");
43		phone_prefix.insert(1228, "US");
44		phone_prefix.insert(1229, "US");
45		phone_prefix.insert(1231, "US");
46		phone_prefix.insert(1234, "US");
47		phone_prefix.insert(1236, "CA");
48		phone_prefix.insert(1239, "US");
49		phone_prefix.insert(1240, "US");
50		phone_prefix.insert(1242, "BS");
51		phone_prefix.insert(1246, "BB");
52		phone_prefix.insert(1248, "US");
53		phone_prefix.insert(1249, "CA");
54		phone_prefix.insert(1250, "CA");
55		phone_prefix.insert(1251, "US");
56		phone_prefix.insert(1252, "US");
57		phone_prefix.insert(1253, "US");
58		phone_prefix.insert(1254, "US");
59		phone_prefix.insert(1256, "US");
60		phone_prefix.insert(1260, "US");
61		phone_prefix.insert(1262, "US");
62		phone_prefix.insert(1264, "AI");
63		phone_prefix.insert(1267, "US");
64		phone_prefix.insert(1268, "AG");
65		phone_prefix.insert(1269, "US");
66		phone_prefix.insert(1270, "US");
67		phone_prefix.insert(1272, "US");
68		phone_prefix.insert(1274, "US");
69		phone_prefix.insert(1276, "US");
70		phone_prefix.insert(1281, "US");
71		phone_prefix.insert(1284, "VG");
72		phone_prefix.insert(1289, "CA");
73		phone_prefix.insert(1301, "US");
74		phone_prefix.insert(1302, "US");
75		phone_prefix.insert(1303, "US");
76		phone_prefix.insert(1304, "US");
77		phone_prefix.insert(1305, "US");
78		phone_prefix.insert(1306, "CA");
79		phone_prefix.insert(1307, "US");
80		phone_prefix.insert(1308, "US");
81		phone_prefix.insert(1309, "US");
82		phone_prefix.insert(1310, "US");
83		phone_prefix.insert(1312, "US");
84		phone_prefix.insert(1313, "US");
85		phone_prefix.insert(1314, "US");
86		phone_prefix.insert(1315, "US");
87		phone_prefix.insert(1316, "US");
88		phone_prefix.insert(1317, "US");
89		phone_prefix.insert(1318, "US");
90		phone_prefix.insert(1319, "US");
91		phone_prefix.insert(1320, "US");
92		phone_prefix.insert(1321, "US");
93		phone_prefix.insert(1323, "US");
94		phone_prefix.insert(1325, "US");
95		phone_prefix.insert(1330, "US");
96		phone_prefix.insert(1331, "US");
97		phone_prefix.insert(1334, "US");
98		phone_prefix.insert(1336, "US");
99		phone_prefix.insert(1337, "US");
100		phone_prefix.insert(1339, "US");
101		phone_prefix.insert(1340, "VI");
102		phone_prefix.insert(1343, "CA");
103		phone_prefix.insert(1345, "KY");
104		phone_prefix.insert(1346, "US");
105		phone_prefix.insert(1347, "US");
106		phone_prefix.insert(1351, "US");
107		phone_prefix.insert(1352, "US");
108		phone_prefix.insert(1360, "US");
109		phone_prefix.insert(1361, "US");
110		phone_prefix.insert(1364, "US");
111		phone_prefix.insert(1365, "CA");
112		phone_prefix.insert(1385, "US");
113		phone_prefix.insert(1386, "US");
114		phone_prefix.insert(1401, "US");
115		phone_prefix.insert(1402, "US");
116		phone_prefix.insert(1403, "CA");
117		phone_prefix.insert(1404, "US");
118		phone_prefix.insert(1405, "US");
119		phone_prefix.insert(1406, "US");
120		phone_prefix.insert(1407, "US");
121		phone_prefix.insert(1408, "US");
122		phone_prefix.insert(1409, "US");
123		phone_prefix.insert(1410, "US");
124		phone_prefix.insert(1412, "US");
125		phone_prefix.insert(1413, "US");
126		phone_prefix.insert(1414, "US");
127		phone_prefix.insert(1415, "US");
128		phone_prefix.insert(1416, "CA");
129		phone_prefix.insert(1417, "US");
130		phone_prefix.insert(1418, "CA");
131		phone_prefix.insert(1419, "US");
132		phone_prefix.insert(1423, "US");
133		phone_prefix.insert(1424, "US");
134		phone_prefix.insert(1425, "US");
135		phone_prefix.insert(1430, "US");
136		phone_prefix.insert(1431, "CA");
137		phone_prefix.insert(1432, "US");
138		phone_prefix.insert(1434, "US");
139		phone_prefix.insert(1435, "US");
140		phone_prefix.insert(1437, "CA");
141		phone_prefix.insert(1438, "CA");
142		phone_prefix.insert(1440, "US");
143		phone_prefix.insert(1441, "BM");
144		phone_prefix.insert(1442, "US");
145		phone_prefix.insert(1443, "US");
146		phone_prefix.insert(1450, "CA");
147		phone_prefix.insert(1457, "CA");
148		phone_prefix.insert(1458, "US");
149		phone_prefix.insert(1469, "US");
150		phone_prefix.insert(1470, "US");
151		phone_prefix.insert(1473, "GD");
152		phone_prefix.insert(1475, "US");
153		phone_prefix.insert(1478, "US");
154		phone_prefix.insert(1479, "US");
155		phone_prefix.insert(1480, "US");
156		phone_prefix.insert(1484, "US");
157		phone_prefix.insert(1500, "US");
158		phone_prefix.insert(1501, "US");
159		phone_prefix.insert(1502, "US");
160		phone_prefix.insert(1503, "US");
161		phone_prefix.insert(1504, "US");
162		phone_prefix.insert(1505, "US");
163		phone_prefix.insert(1506, "CA");
164		phone_prefix.insert(1507, "US");
165		phone_prefix.insert(1508, "US");
166		phone_prefix.insert(1509, "US");
167		phone_prefix.insert(1510, "US");
168		phone_prefix.insert(1512, "US");
169		phone_prefix.insert(1513, "US");
170		phone_prefix.insert(1514, "CA");
171		phone_prefix.insert(1515, "US");
172		phone_prefix.insert(1516, "US");
173		phone_prefix.insert(1517, "US");
174		phone_prefix.insert(1518, "US");
175		phone_prefix.insert(1519, "CA");
176		phone_prefix.insert(1520, "US");
177		phone_prefix.insert(1530, "US");
178		phone_prefix.insert(1531, "US");
179		phone_prefix.insert(1533, "US");
180		phone_prefix.insert(1534, "US");
181		phone_prefix.insert(1539, "US");
182		phone_prefix.insert(1540, "US");
183		phone_prefix.insert(1541, "US");
184		phone_prefix.insert(1544, "US");
185		phone_prefix.insert(1551, "US");
186		phone_prefix.insert(1559, "US");
187		phone_prefix.insert(1561, "US");
188		phone_prefix.insert(1562, "US");
189		phone_prefix.insert(1563, "US");
190		phone_prefix.insert(1566, "US");
191		phone_prefix.insert(1567, "US");
192		phone_prefix.insert(1570, "US");
193		phone_prefix.insert(1571, "US");
194		phone_prefix.insert(1573, "US");
195		phone_prefix.insert(1574, "US");
196		phone_prefix.insert(1575, "US");
197		phone_prefix.insert(1577, "US");
198		phone_prefix.insert(1579, "CA");
199		phone_prefix.insert(1580, "US");
200		phone_prefix.insert(1581, "CA");
201		phone_prefix.insert(1585, "US");
202		phone_prefix.insert(1586, "US");
203		phone_prefix.insert(1587, "CA");
204		phone_prefix.insert(1600, "CA");
205		phone_prefix.insert(1601, "US");
206		phone_prefix.insert(1602, "US");
207		phone_prefix.insert(1603, "US");
208		phone_prefix.insert(1604, "CA");
209		phone_prefix.insert(1605, "US");
210		phone_prefix.insert(1606, "US");
211		phone_prefix.insert(1607, "US");
212		phone_prefix.insert(1608, "US");
213		phone_prefix.insert(1609, "US");
214		phone_prefix.insert(1610, "US");
215		phone_prefix.insert(1612, "US");
216		phone_prefix.insert(1613, "CA");
217		phone_prefix.insert(1614, "US");
218		phone_prefix.insert(1615, "US");
219		phone_prefix.insert(1616, "US");
220		phone_prefix.insert(1617, "US");
221		phone_prefix.insert(1618, "US");
222		phone_prefix.insert(1619, "US");
223		phone_prefix.insert(1620, "US");
224		phone_prefix.insert(1623, "US");
225		phone_prefix.insert(1626, "US");
226		phone_prefix.insert(1628, "US");
227		phone_prefix.insert(1629, "US");
228		phone_prefix.insert(1630, "US");
229		phone_prefix.insert(1631, "US");
230		phone_prefix.insert(1636, "US");
231		phone_prefix.insert(1639, "CA");
232		phone_prefix.insert(1641, "US");
233		phone_prefix.insert(1646, "US");
234		phone_prefix.insert(1647, "CA");
235		phone_prefix.insert(1649, "TC");
236		phone_prefix.insert(1650, "US");
237		phone_prefix.insert(1651, "US");
238		phone_prefix.insert(1657, "US");
239		phone_prefix.insert(1660, "US");
240		phone_prefix.insert(1661, "US");
241		phone_prefix.insert(1662, "US");
242		phone_prefix.insert(1664, "MS");
243		phone_prefix.insert(1667, "US");
244		phone_prefix.insert(1669, "US");
245		phone_prefix.insert(1670, "MP");
246		phone_prefix.insert(1671, "GU");
247		phone_prefix.insert(1678, "US");
248		phone_prefix.insert(1681, "US");
249		phone_prefix.insert(1682, "US");
250		phone_prefix.insert(1684, "AS");
251		phone_prefix.insert(1700, "US");
252		phone_prefix.insert(1701, "US");
253		phone_prefix.insert(1702, "US");
254		phone_prefix.insert(1703, "US");
255		phone_prefix.insert(1704, "US");
256		phone_prefix.insert(1705, "CA");
257		phone_prefix.insert(1706, "US");
258		phone_prefix.insert(1707, "US");
259		phone_prefix.insert(1708, "US");
260		phone_prefix.insert(1709, "CA");
261		phone_prefix.insert(1710, "US");
262		phone_prefix.insert(1712, "US");
263		phone_prefix.insert(1713, "US");
264		phone_prefix.insert(1714, "US");
265		phone_prefix.insert(1715, "US");
266		phone_prefix.insert(1716, "US");
267		phone_prefix.insert(1717, "US");
268		phone_prefix.insert(1718, "US");
269		phone_prefix.insert(1719, "US");
270		phone_prefix.insert(1720, "US");
271		phone_prefix.insert(1721, "SX");
272		phone_prefix.insert(1724, "US");
273		phone_prefix.insert(1725, "US");
274		phone_prefix.insert(1727, "US");
275		phone_prefix.insert(1731, "US");
276		phone_prefix.insert(1732, "US");
277		phone_prefix.insert(1734, "US");
278		phone_prefix.insert(1737, "US");
279		phone_prefix.insert(1740, "US");
280		phone_prefix.insert(1747, "US");
281		phone_prefix.insert(1754, "US");
282		phone_prefix.insert(1757, "US");
283		phone_prefix.insert(1758, "LC");
284		phone_prefix.insert(1760, "US");
285		phone_prefix.insert(1762, "US");
286		phone_prefix.insert(1763, "US");
287		phone_prefix.insert(1765, "US");
288		phone_prefix.insert(1767, "DM");
289		phone_prefix.insert(1769, "US");
290		phone_prefix.insert(1770, "US");
291		phone_prefix.insert(1772, "US");
292		phone_prefix.insert(1773, "US");
293		phone_prefix.insert(1774, "US");
294		phone_prefix.insert(1775, "US");
295		phone_prefix.insert(1778, "CA");
296		phone_prefix.insert(1779, "US");
297		phone_prefix.insert(1780, "CA");
298		phone_prefix.insert(1781, "US");
299		phone_prefix.insert(1782, "CA");
300		phone_prefix.insert(1784, "VC");
301		phone_prefix.insert(1785, "US");
302		phone_prefix.insert(1786, "US");
303		phone_prefix.insert(1787, "PR");
304		phone_prefix.insert(1800, "US");
305		phone_prefix.insert(1801, "US");
306		phone_prefix.insert(1802, "US");
307		phone_prefix.insert(1803, "US");
308		phone_prefix.insert(1804, "US");
309		phone_prefix.insert(1805, "US");
310		phone_prefix.insert(1806, "US");
311		phone_prefix.insert(1807, "CA");
312		phone_prefix.insert(1808, "US");
313		phone_prefix.insert(1809, "DO");
314		phone_prefix.insert(1810, "US");
315		phone_prefix.insert(1812, "US");
316		phone_prefix.insert(1813, "US");
317		phone_prefix.insert(1814, "US");
318		phone_prefix.insert(1815, "US");
319		phone_prefix.insert(1816, "US");
320		phone_prefix.insert(1817, "US");
321		phone_prefix.insert(1818, "US");
322		phone_prefix.insert(1819, "CA");
323		phone_prefix.insert(1825, "CA");
324		phone_prefix.insert(1828, "US");
325		phone_prefix.insert(1829, "DO");
326		phone_prefix.insert(1830, "US");
327		phone_prefix.insert(1831, "US");
328		phone_prefix.insert(1832, "US");
329		phone_prefix.insert(1843, "US");
330		phone_prefix.insert(1844, "US");
331		phone_prefix.insert(1845, "US");
332		phone_prefix.insert(1847, "US");
333		phone_prefix.insert(1848, "US");
334		phone_prefix.insert(1849, "DO");
335		phone_prefix.insert(1850, "US");
336		phone_prefix.insert(1855, "US");
337		phone_prefix.insert(1856, "US");
338		phone_prefix.insert(1857, "US");
339		phone_prefix.insert(1858, "US");
340		phone_prefix.insert(1859, "US");
341		phone_prefix.insert(1860, "US");
342		phone_prefix.insert(1862, "US");
343		phone_prefix.insert(1863, "US");
344		phone_prefix.insert(1864, "US");
345		phone_prefix.insert(1865, "US");
346		phone_prefix.insert(1866, "US");
347		phone_prefix.insert(1867, "CA");
348		phone_prefix.insert(1868, "TT");
349		phone_prefix.insert(1869, "KN");
350		phone_prefix.insert(1870, "US");
351		phone_prefix.insert(1872, "US");
352		phone_prefix.insert(1873, "CA");
353		phone_prefix.insert(1876, "JM");
354		phone_prefix.insert(1877, "US");
355		phone_prefix.insert(1878, "US");
356		phone_prefix.insert(1888, "US");
357		phone_prefix.insert(1900, "US");
358		phone_prefix.insert(1901, "US");
359		phone_prefix.insert(1902, "CA");
360		phone_prefix.insert(1903, "US");
361		phone_prefix.insert(1904, "US");
362		phone_prefix.insert(1905, "CA");
363		phone_prefix.insert(1906, "US");
364		phone_prefix.insert(1907, "US");
365		phone_prefix.insert(1908, "US");
366		phone_prefix.insert(1909, "US");
367		phone_prefix.insert(1910, "US");
368		phone_prefix.insert(1912, "US");
369		phone_prefix.insert(1913, "US");
370		phone_prefix.insert(1914, "US");
371		phone_prefix.insert(1915, "US");
372		phone_prefix.insert(1916, "US");
373		phone_prefix.insert(1917, "US");
374		phone_prefix.insert(1918, "US");
375		phone_prefix.insert(1919, "US");
376		phone_prefix.insert(1920, "US");
377		phone_prefix.insert(1925, "US");
378		phone_prefix.insert(1928, "US");
379		phone_prefix.insert(1929, "US");
380		phone_prefix.insert(1930, "US");
381		phone_prefix.insert(1931, "US");
382		phone_prefix.insert(1935, "US");
383		phone_prefix.insert(1936, "US");
384		phone_prefix.insert(1937, "US");
385		phone_prefix.insert(1938, "US");
386		phone_prefix.insert(1939, "PR");
387		phone_prefix.insert(1940, "US");
388		phone_prefix.insert(1941, "US");
389		phone_prefix.insert(1947, "US");
390		phone_prefix.insert(1949, "US");
391		phone_prefix.insert(1951, "US");
392		phone_prefix.insert(1952, "US");
393		phone_prefix.insert(1954, "US");
394		phone_prefix.insert(1956, "US");
395		phone_prefix.insert(1959, "US");
396		phone_prefix.insert(1970, "US");
397		phone_prefix.insert(1971, "US");
398		phone_prefix.insert(1972, "US");
399		phone_prefix.insert(1973, "US");
400		phone_prefix.insert(1978, "US");
401		phone_prefix.insert(1979, "US");
402		phone_prefix.insert(1980, "US");
403		phone_prefix.insert(1984, "US");
404		phone_prefix.insert(1985, "US");
405		phone_prefix.insert(1989, "US");
406		phone_prefix.insert(20, "EG");
407		phone_prefix.insert(211, "SS");
408		phone_prefix.insert(212, "MA");
409		phone_prefix.insert(213, "DZ");
410		phone_prefix.insert(216, "TN");
411		phone_prefix.insert(218, "LY");
412		phone_prefix.insert(220, "GM");
413		phone_prefix.insert(221, "SN");
414		phone_prefix.insert(222, "MR");
415		phone_prefix.insert(223, "ML");
416		phone_prefix.insert(224, "GN");
417		phone_prefix.insert(225, "CI");
418		phone_prefix.insert(226, "BF");
419		phone_prefix.insert(227, "NE");
420		phone_prefix.insert(228, "TG");
421		phone_prefix.insert(229, "BJ");
422		phone_prefix.insert(230, "MU");
423		phone_prefix.insert(231, "LR");
424		phone_prefix.insert(232, "SL");
425		phone_prefix.insert(233, "GH");
426		phone_prefix.insert(234, "NG");
427		phone_prefix.insert(235, "TD");
428		phone_prefix.insert(236, "CF");
429		phone_prefix.insert(237, "CM");
430		phone_prefix.insert(238, "CV");
431		phone_prefix.insert(239, "ST");
432		phone_prefix.insert(240, "GQ");
433		phone_prefix.insert(241, "GA");
434		phone_prefix.insert(242, "CG");
435		phone_prefix.insert(243, "CD");
436		phone_prefix.insert(244, "AO");
437		phone_prefix.insert(245, "GW");
438		phone_prefix.insert(246, "IO");
439		phone_prefix.insert(247, "AC");
440		phone_prefix.insert(248, "SC");
441		phone_prefix.insert(249, "SD");
442		phone_prefix.insert(250, "RW");
443		phone_prefix.insert(251, "ET");
444		phone_prefix.insert(252, "SO");
445		phone_prefix.insert(253, "DJ");
446		phone_prefix.insert(254, "KE");
447		phone_prefix.insert(255, "TZ");
448		phone_prefix.insert(256, "UG");
449		phone_prefix.insert(257, "BI");
450		phone_prefix.insert(258, "MZ");
451		phone_prefix.insert(260, "ZM");
452		phone_prefix.insert(261, "MG");
453		phone_prefix.insert(262269, "YT");
454		phone_prefix.insert(262639, "YT");
455		phone_prefix.insert(262, "RE");
456		phone_prefix.insert(263, "ZW");
457		phone_prefix.insert(264, "NA");
458		phone_prefix.insert(265, "MW");
459		phone_prefix.insert(266, "LS");
460		phone_prefix.insert(267, "BW");
461		phone_prefix.insert(268, "SZ");
462		phone_prefix.insert(269, "KM");
463	    phone_prefix.insert(27, "ZA");
464		phone_prefix.insert(290, "SH");
465		phone_prefix.insert(291, "ER");
466		phone_prefix.insert(297, "AW");
467		phone_prefix.insert(298, "FO");
468		phone_prefix.insert(299, "GL");
469		phone_prefix.insert(30, "GR");
470		phone_prefix.insert(31, "NL");
471		phone_prefix.insert(32, "BE");
472		phone_prefix.insert(33, "FR");
473		phone_prefix.insert(34, "ES");
474		phone_prefix.insert(350, "GI");
475		phone_prefix.insert(351, "PT");
476		phone_prefix.insert(352, "LU");
477		phone_prefix.insert(353, "IE");
478		phone_prefix.insert(354, "IS");
479		phone_prefix.insert(355, "AL");
480		phone_prefix.insert(356, "MT");
481		phone_prefix.insert(357, "CY");
482		phone_prefix.insert(358, "FI");
483		phone_prefix.insert(35818, "AX");
484		phone_prefix.insert(359, "BG");
485		phone_prefix.insert(36, "HU");
486		phone_prefix.insert(370, "LT");
487		phone_prefix.insert(371, "LV");
488		phone_prefix.insert(372, "EE");
489		phone_prefix.insert(373, "MD");
490		phone_prefix.insert(374, "AM");
491		phone_prefix.insert(375, "BY");
492		phone_prefix.insert(376, "AD");
493		phone_prefix.insert(377, "MC");
494		phone_prefix.insert(378, "SM");
495		phone_prefix.insert(379, "VA");
496		phone_prefix.insert(380, "UA");
497		phone_prefix.insert(381, "RS");
498		phone_prefix.insert(382, "ME");
499		phone_prefix.insert(385, "HR");
500		phone_prefix.insert(386, "SI");
501		phone_prefix.insert(387, "BA");
502		phone_prefix.insert(389, "MK");
503		phone_prefix.insert(39, "IT");
504		phone_prefix.insert(40, "RO");
505		phone_prefix.insert(41, "CH");
506		phone_prefix.insert(420, "CZ");
507		phone_prefix.insert(421, "SK");
508		phone_prefix.insert(423, "LI");
509		phone_prefix.insert(43, "AT");
510		phone_prefix.insert(441481, "GG");
511		phone_prefix.insert(441624, "IM");
512		phone_prefix.insert(441534, "JE");
513		phone_prefix.insert(44, "GB");
514		phone_prefix.insert(45, "DK");
515		phone_prefix.insert(46, "SE");
516		phone_prefix.insert(47, "NO");
517		phone_prefix.insert(4779, "SJ");
518		phone_prefix.insert(48, "PL");
519		phone_prefix.insert(49, "DE");
520		phone_prefix.insert(500, "FK");
521		phone_prefix.insert(501, "BZ");
522		phone_prefix.insert(502, "GT");
523		phone_prefix.insert(503, "SV");
524		phone_prefix.insert(504, "HN");
525		phone_prefix.insert(505, "NI");
526		phone_prefix.insert(506, "CR");
527		phone_prefix.insert(507, "PA");
528		phone_prefix.insert(508, "PM");
529		phone_prefix.insert(509, "HT");
530		phone_prefix.insert(51, "PE");
531		phone_prefix.insert(52, "MX");
532		phone_prefix.insert(53, "CU");
533		phone_prefix.insert(54, "AR");
534		phone_prefix.insert(55, "BR");
535		phone_prefix.insert(56, "CL");
536		phone_prefix.insert(57, "CO");
537		phone_prefix.insert(58, "VE");
538		phone_prefix.insert(590, "GP");
539		phone_prefix.insert(591, "BO");
540		phone_prefix.insert(592, "GY");
541		phone_prefix.insert(593, "EC");
542		phone_prefix.insert(594, "GF");
543		phone_prefix.insert(595, "PY");
544		phone_prefix.insert(596, "MQ");
545		phone_prefix.insert(597, "SR");
546		phone_prefix.insert(598, "UY");
547		phone_prefix.insert(5993, "BQ");
548		phone_prefix.insert(5994, "BQ");
549		phone_prefix.insert(5997, "BQ");
550		phone_prefix.insert(5999, "CW");
551		phone_prefix.insert(60, "MY");
552		phone_prefix.insert(61, "AU");
553		phone_prefix.insert(6189164, "CX");
554		phone_prefix.insert(6189162, "CC");
555		phone_prefix.insert(62, "ID");
556		phone_prefix.insert(63, "PH");
557		phone_prefix.insert(64, "NZ");
558		phone_prefix.insert(65, "SG");
559		phone_prefix.insert(66, "TH");
560		phone_prefix.insert(670, "TL");
561		phone_prefix.insert(6721, "AQ");
562		phone_prefix.insert(6723, "NF");
563		phone_prefix.insert(673, "BN");
564		phone_prefix.insert(674, "NR");
565		phone_prefix.insert(675, "PG");
566		phone_prefix.insert(676, "TO");
567		phone_prefix.insert(677, "SB");
568		phone_prefix.insert(678, "VU");
569		phone_prefix.insert(679, "FJ");
570		phone_prefix.insert(680, "PW");
571		phone_prefix.insert(681, "WF");
572		phone_prefix.insert(682, "CK");
573		phone_prefix.insert(683, "NU");
574		phone_prefix.insert(685, "WS");
575		phone_prefix.insert(686, "KI");
576		phone_prefix.insert(687, "NC");
577		phone_prefix.insert(688, "TV");
578		phone_prefix.insert(689, "PF");
579		phone_prefix.insert(690, "TK");
580		phone_prefix.insert(691, "FM");
581		phone_prefix.insert(692, "MH");
582		phone_prefix.insert(7, "RU");
583		phone_prefix.insert(76, "KZ");
584		phone_prefix.insert(77, "KZ");
585		phone_prefix.insert(800, "XT");
586		phone_prefix.insert(808, "XS");
587		phone_prefix.insert(81, "JP");
588		phone_prefix.insert(82, "KR");
589		phone_prefix.insert(84, "VN");
590		phone_prefix.insert(850, "KP");
591		phone_prefix.insert(852, "HK");
592		phone_prefix.insert(853, "MO");
593		phone_prefix.insert(855, "KH");
594		phone_prefix.insert(856, "LA");
595		phone_prefix.insert(86, "CN");
596		phone_prefix.insert(870, "XN");
597		phone_prefix.insert(878, "XP");
598		phone_prefix.insert(880, "BD");
599		phone_prefix.insert(881, "XG");
600		phone_prefix.insert(882, "XV");
601		phone_prefix.insert(883, "XV");
602		phone_prefix.insert(886, "TW");
603		phone_prefix.insert(90, "TR");
604		phone_prefix.insert(91, "IN");
605		phone_prefix.insert(92, "PK");
606		phone_prefix.insert(93, "AF");
607		phone_prefix.insert(94, "LK");
608		phone_prefix.insert(95, "MM");
609		phone_prefix.insert(960, "MV");
610		phone_prefix.insert(961, "LB");
611		phone_prefix.insert(962, "JO");
612		phone_prefix.insert(963, "SY");
613		phone_prefix.insert(964, "IQ");
614		phone_prefix.insert(965, "KW");
615		phone_prefix.insert(966, "SA");
616		phone_prefix.insert(967, "YE");
617		phone_prefix.insert(968, "OM");
618		phone_prefix.insert(970, "PS");
619		phone_prefix.insert(971, "AE");
620		phone_prefix.insert(972, "IL");
621		phone_prefix.insert(973, "BH");
622		phone_prefix.insert(974, "QA");
623		phone_prefix.insert(975, "BT");
624		phone_prefix.insert(976, "MN");
625		phone_prefix.insert(977, "NP");
626		phone_prefix.insert(98, "IR");
627		phone_prefix.insert(992, "TJ");
628		phone_prefix.insert(993, "TM");
629		phone_prefix.insert(994, "AZ");
630		phone_prefix.insert(995, "GE");
631		phone_prefix.insert(996, "KG");
632		phone_prefix.insert(998, "UZ");
633
634		if phone.len() < 10 {
635			panic!("phone length needs to be at least 10 digits");
636		}
637		let mut prefix = 0;
638        if &phone[0 .. 1] == "1" {
639            prefix = phone[0 .. 4].parse::<i32>().unwrap();
640        } else {
641            let s = &phone[0 .. 7];
642           
643            //let mut ns = 0;
644            let mut done = false;
645            let mut x = s.len();
646            while !done {
647                x-=1;
648                let ns = s[..x].to_owned().parse::<i32>().unwrap();
649                println!("{}", ns);
650                if phone_prefix.contains_key(&ns) {
651                    prefix = ns;
652                    done = true;
653                }
654                if x == 1 {
655                    done = true;
656                }
657            }
658		}
659       
660        return match phone_prefix.get(&prefix) {
661            Some(x) => x,
662            None => ""
663        };
664}
665
666pub fn find_phone_cc(code:&str) -> &'static str {
667	let mut iso_3166 = HashMap::new();
668		iso_3166.insert("US", "1");
669		iso_3166.insert("CA", "1");
670		iso_3166.insert("AC", "247");
671		iso_3166.insert("AD", "376");
672		iso_3166.insert("AE", "971");
673		iso_3166.insert("AF", "93");
674		iso_3166.insert("AG", "1");
675		iso_3166.insert("AI", "1");
676		iso_3166.insert("AL", "355");
677		iso_3166.insert("AM", "374");
678		iso_3166.insert("AO", "244");
679		iso_3166.insert("AQ", "672");
680		iso_3166.insert("AR", "54");
681		iso_3166.insert("AS", "1");
682		iso_3166.insert("AT", "43");
683		iso_3166.insert("AU", "61");
684		iso_3166.insert("AW", "297");
685		iso_3166.insert("AX", "35818");
686		iso_3166.insert("AZ", "994");
687		iso_3166.insert("BA", "387");
688		iso_3166.insert("BB", "1");
689		iso_3166.insert("BD", "880");
690		iso_3166.insert("BE", "32");
691		iso_3166.insert("BF", "226");
692		iso_3166.insert("BG", "359");
693		iso_3166.insert("BH", "973");
694		iso_3166.insert("BI", "257");
695		iso_3166.insert("BJ", "229");
696		iso_3166.insert("BM", "1");
697		iso_3166.insert("BN", "673");
698		iso_3166.insert("BO", "591");
699		iso_3166.insert("BQ", "599");//5993,5994,5997
700		iso_3166.insert("BR", "55");
701		iso_3166.insert("BS", "1");
702		iso_3166.insert("BT", "975");
703		iso_3166.insert("BW", "267");
704		iso_3166.insert("BY", "375");
705		iso_3166.insert("BZ", "501");
706		iso_3166.insert("CC", "6189162");
707		iso_3166.insert("CD", "243");
708		iso_3166.insert("CF", "236");
709		iso_3166.insert("CG", "242");
710		iso_3166.insert("CH", "41");
711		iso_3166.insert("CI", "225");
712		iso_3166.insert("CK", "682");
713		iso_3166.insert("CL", "56");
714		iso_3166.insert("CM", "237");
715		iso_3166.insert("CN", "86");
716		iso_3166.insert("CO", "57");
717		iso_3166.insert("CR", "506");
718		iso_3166.insert("CU", "53");
719		iso_3166.insert("CV", "238");
720		iso_3166.insert("CW", "5999");
721		iso_3166.insert("CX", "6189164");
722		iso_3166.insert("CY", "357");
723		iso_3166.insert("CZ", "420");
724		iso_3166.insert("DE", "49");
725		iso_3166.insert("DJ", "253");
726		iso_3166.insert("DK", "45");
727		iso_3166.insert("DM", "1");
728		iso_3166.insert("DO", "1");
729		iso_3166.insert("DZ", "213");
730		iso_3166.insert("EC", "593");
731		iso_3166.insert("EE", "372");
732		iso_3166.insert("EG", "20");
733		iso_3166.insert("ER", "291");
734		iso_3166.insert("ES", "34");
735		iso_3166.insert("ET", "251");
736		iso_3166.insert("FI", "358");
737		iso_3166.insert("FJ", "679");
738		iso_3166.insert("FK", "500");
739		iso_3166.insert("FM", "691");
740		iso_3166.insert("FO", "298");
741		iso_3166.insert("FR", "33");
742		iso_3166.insert("GA", "241");
743		iso_3166.insert("GB", "44");
744		iso_3166.insert("GD", "1");
745		iso_3166.insert("GE", "995");
746		iso_3166.insert("GF", "594");
747		iso_3166.insert("GG", "441481");
748		iso_3166.insert("GH", "233");
749		iso_3166.insert("GI", "350");
750		iso_3166.insert("GL", "299");
751		iso_3166.insert("GM", "220");
752		iso_3166.insert("GN", "224");
753		iso_3166.insert("GP", "590");
754		iso_3166.insert("GQ", "240");
755		iso_3166.insert("GR", "30");
756		iso_3166.insert("GT", "502");
757		iso_3166.insert("GU", "1");
758		iso_3166.insert("GW", "245");
759		iso_3166.insert("GY", "592");
760		iso_3166.insert("HK", "852");
761		iso_3166.insert("HN", "504");
762		iso_3166.insert("HR", "385");
763		iso_3166.insert("HT", "509");
764		iso_3166.insert("HU", "36");
765		iso_3166.insert("ID", "62");
766		iso_3166.insert("IE", "353");
767		iso_3166.insert("IL", "972");
768		iso_3166.insert("IM", "441624");
769		iso_3166.insert("IN", "91");
770		iso_3166.insert("IO", "246");
771		iso_3166.insert("IQ", "964");
772		iso_3166.insert("IR", "98");
773		iso_3166.insert("IS", "354");
774		iso_3166.insert("IT", "39");
775		iso_3166.insert("JE", "441534");
776		iso_3166.insert("JM", "1");
777		iso_3166.insert("JO", "962");
778		iso_3166.insert("JP", "81");
779		iso_3166.insert("KE", "254");
780		iso_3166.insert("KG", "996");
781		iso_3166.insert("KH", "855");
782		iso_3166.insert("KI", "686");
783		iso_3166.insert("KM", "269");
784		iso_3166.insert("KN", "1");
785		iso_3166.insert("KP", "850");
786		iso_3166.insert("KR", "82");
787		iso_3166.insert("KW", "965");
788		iso_3166.insert("KY", "1");
789		iso_3166.insert("KZ", "7");
790		iso_3166.insert("LA", "856");
791		iso_3166.insert("LB", "961");
792		iso_3166.insert("LC", "1");
793		iso_3166.insert("LI", "423");
794		iso_3166.insert("LK", "94");
795		iso_3166.insert("LR", "231");
796		iso_3166.insert("LS", "266");
797		iso_3166.insert("LT", "370");
798		iso_3166.insert("LU", "352");
799		iso_3166.insert("LV", "371");
800		iso_3166.insert("LY", "218");
801		iso_3166.insert("MA", "212");
802		iso_3166.insert("MC", "377");
803		iso_3166.insert("MD", "373");
804		iso_3166.insert("ME", "382");
805		iso_3166.insert("MG", "261");
806		iso_3166.insert("MH", "692");
807		iso_3166.insert("MK", "389");
808		iso_3166.insert("ML", "223");
809		iso_3166.insert("MM", "95");
810		iso_3166.insert("MN", "976");
811		iso_3166.insert("MO", "853");
812		iso_3166.insert("MP", "1");
813		iso_3166.insert("MQ", "596");
814		iso_3166.insert("MR", "222");
815		iso_3166.insert("MS", "1");
816		iso_3166.insert("MT", "356");
817		iso_3166.insert("MU", "230");
818		iso_3166.insert("MV", "960");
819		iso_3166.insert("MW", "265");
820		iso_3166.insert("MX", "52");
821		iso_3166.insert("MY", "60");
822		iso_3166.insert("MZ", "258");
823		iso_3166.insert("NA", "264");
824		iso_3166.insert("NC", "687");
825		iso_3166.insert("NE", "227");
826		iso_3166.insert("NF", "6723");
827		iso_3166.insert("NG", "234");
828		iso_3166.insert("NI", "505");
829		iso_3166.insert("NL", "31");
830		iso_3166.insert("NO", "47");
831		iso_3166.insert("NP", "977");
832		iso_3166.insert("NR", "674");
833		iso_3166.insert("NU", "683");
834		iso_3166.insert("NZ", "64");
835		iso_3166.insert("OM", "968");
836		iso_3166.insert("PA", "507");
837		iso_3166.insert("PE", "51");
838		iso_3166.insert("PF", "689");
839		iso_3166.insert("PG", "675");
840		iso_3166.insert("PH", "63");
841		iso_3166.insert("PK", "92");
842		iso_3166.insert("PL", "48");
843		iso_3166.insert("PM", "508");
844		iso_3166.insert("PR", "1");
845		iso_3166.insert("PS", "970");
846		iso_3166.insert("PT", "351");
847		iso_3166.insert("PW", "680");
848		iso_3166.insert("PY", "595");
849		iso_3166.insert("QA", "974");
850		iso_3166.insert("RE", "262");
851		iso_3166.insert("RO", "40");
852		iso_3166.insert("RS", "381");
853		iso_3166.insert("RU", "7");
854		iso_3166.insert("RW", "250");
855		iso_3166.insert("SA", "966");
856		iso_3166.insert("SB", "677");
857		iso_3166.insert("SC", "248");
858		iso_3166.insert("SD", "249");
859		iso_3166.insert("SE", "46");
860		iso_3166.insert("SG", "65");
861		iso_3166.insert("SH", "290");
862		iso_3166.insert("SI", "386");
863		iso_3166.insert("SJ", "4779");
864		iso_3166.insert("SK", "421");
865		iso_3166.insert("SL", "232");
866		iso_3166.insert("SM", "378");
867		iso_3166.insert("SN", "221");
868		iso_3166.insert("SO", "252");
869		iso_3166.insert("SR", "597");
870		iso_3166.insert("SS", "211");
871		iso_3166.insert("ST", "239");
872		iso_3166.insert("SV", "503");
873		iso_3166.insert("SX", "1");
874		iso_3166.insert("SY", "963");
875		iso_3166.insert("SZ", "268");
876		iso_3166.insert("TC", "1");
877		iso_3166.insert("TD", "235");
878		iso_3166.insert("TG", "228");
879		iso_3166.insert("TH", "66");
880		iso_3166.insert("TJ", "992");
881		iso_3166.insert("TK", "690");
882		iso_3166.insert("TL", "670");
883		iso_3166.insert("TM", "993");
884		iso_3166.insert("TN", "216");
885		iso_3166.insert("TO", "676");
886		iso_3166.insert("TR", "90");
887		iso_3166.insert("TT", "1");
888		iso_3166.insert("TV", "688");
889		iso_3166.insert("TW", "886");
890		iso_3166.insert("TZ", "255");
891		iso_3166.insert("UA", "380");
892		iso_3166.insert("UG", "256");
893		iso_3166.insert("UY", "598");
894		iso_3166.insert("UZ", "998");
895		iso_3166.insert("VA", "379");
896		iso_3166.insert("VC", "1");
897		iso_3166.insert("VE", "58");
898		iso_3166.insert("VG", "1");
899		iso_3166.insert("VI", "1");
900		iso_3166.insert("VN", "84");
901		iso_3166.insert("VU", "678");
902		iso_3166.insert("WF", "681");
903		iso_3166.insert("WS", "685");
904		iso_3166.insert("XG", "881");
905		iso_3166.insert("XN", "870");
906		iso_3166.insert("XP", "878");
907		iso_3166.insert("XS", "808");
908		iso_3166.insert("XT", "800");
909		iso_3166.insert("XV", "882");
910		//iso_3166.insert("XV", "883");
911		iso_3166.insert("YE", "967");
912		iso_3166.insert("YT", "262");
913		iso_3166.insert("ZA", "27");
914		iso_3166.insert("ZM", "260");
915		iso_3166.insert("ZW", "263");
916
917        return match iso_3166.get(code) {
918            Some(x) => x,
919            None => ""
920        };
921}
922