riven 2.81.0

Riot Games API Library
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
#![cfg_attr(any(), rustfmt::skip)]
///////////////////////////////////////////////
//                                           //
//                     !                     //
//   This file is automatically generated!   //
//           Do not directly edit!           //
//                                           //
///////////////////////////////////////////////

newtype_enum! {
    /// A League of Legends champion.
    ///
    /// This newtype acts as a C-like enum; each variant corresponds to an
    /// integer value. Using a newtype allows _unknown_ variants to be
    /// represented. This is important when Riot adds new champions.
    ///
    /// Field | Name | Identifier | Id
    /// ---|---|---|---
    /// `NONE` | None (no ban) | | -1
    /// `AATROX` | "Aatrox" | "Aatrox" | 266
    /// `AHRI` | "Ahri" | "Ahri" | 103
    /// `AKALI` | "Akali" | "Akali" | 84
    /// `AKSHAN` | "Akshan" | "Akshan" | 166
    /// `ALISTAR` | "Alistar" | "Alistar" | 12
    /// `AMBESSA` | "Ambessa" | "Ambessa" | 799
    /// `AMUMU` | "Amumu" | "Amumu" | 32
    /// `ANIVIA` | "Anivia" | "Anivia" | 34
    /// `ANNIE` | "Annie" | "Annie" | 1
    /// `APHELIOS` | "Aphelios" | "Aphelios" | 523
    /// `ASHE` | "Ashe" | "Ashe" | 22
    /// `AURELION_SOL` | "Aurelion Sol" | "AurelionSol" | 136
    /// `AURORA` | "Aurora" | "Aurora" | 893
    /// `AZIR` | "Azir" | "Azir" | 268
    /// `BARD` | "Bard" | "Bard" | 432
    /// `BEL_VETH` | "Bel'Veth" | "Belveth" | 200
    /// `BLITZCRANK` | "Blitzcrank" | "Blitzcrank" | 53
    /// `BRAND` | "Brand" | "Brand" | 63
    /// `BRAUM` | "Braum" | "Braum" | 201
    /// `BRIAR` | "Briar" | "Briar" | 233
    /// `CAITLYN` | "Caitlyn" | "Caitlyn" | 51
    /// `CAMILLE` | "Camille" | "Camille" | 164
    /// `CASSIOPEIA` | "Cassiopeia" | "Cassiopeia" | 69
    /// `CHO_GATH` | "Cho'Gath" | "Chogath" | 31
    /// `CORKI` | "Corki" | "Corki" | 42
    /// `DARIUS` | "Darius" | "Darius" | 122
    /// `DIANA` | "Diana" | "Diana" | 131
    /// `DR_MUNDO` | "Dr. Mundo" | "DrMundo" | 36
    /// `DRAVEN` | "Draven" | "Draven" | 119
    /// `EKKO` | "Ekko" | "Ekko" | 245
    /// `ELISE` | "Elise" | "Elise" | 60
    /// `EVELYNN` | "Evelynn" | "Evelynn" | 28
    /// `EZREAL` | "Ezreal" | "Ezreal" | 81
    /// `FIDDLESTICKS` | "Fiddlesticks" | "FiddleSticks" | 9
    /// `FIORA` | "Fiora" | "Fiora" | 114
    /// `FIZZ` | "Fizz" | "Fizz" | 105
    /// `GALIO` | "Galio" | "Galio" | 3
    /// `GANGPLANK` | "Gangplank" | "Gangplank" | 41
    /// `GAREN` | "Garen" | "Garen" | 86
    /// `GNAR` | "Gnar" | "Gnar" | 150
    /// `GRAGAS` | "Gragas" | "Gragas" | 79
    /// `GRAVES` | "Graves" | "Graves" | 104
    /// `GWEN` | "Gwen" | "Gwen" | 887
    /// `HECARIM` | "Hecarim" | "Hecarim" | 120
    /// `HEIMERDINGER` | "Heimerdinger" | "Heimerdinger" | 74
    /// `HWEI` | "Hwei" | "Hwei" | 910
    /// `ILLAOI` | "Illaoi" | "Illaoi" | 420
    /// `IRELIA` | "Irelia" | "Irelia" | 39
    /// `IVERN` | "Ivern" | "Ivern" | 427
    /// `JANNA` | "Janna" | "Janna" | 40
    /// `JARVAN_IV` | "Jarvan IV" | "JarvanIV" | 59
    /// `JAX` | "Jax" | "Jax" | 24
    /// `JAYCE` | "Jayce" | "Jayce" | 126
    /// `JHIN` | "Jhin" | "Jhin" | 202
    /// `JINX` | "Jinx" | "Jinx" | 222
    /// `K_SANTE` | "K'Sante" | "KSante" | 897
    /// `KAI_SA` | "Kai'Sa" | "Kaisa" | 145
    /// `KALISTA` | "Kalista" | "Kalista" | 429
    /// `KARMA` | "Karma" | "Karma" | 43
    /// `KARTHUS` | "Karthus" | "Karthus" | 30
    /// `KASSADIN` | "Kassadin" | "Kassadin" | 38
    /// `KATARINA` | "Katarina" | "Katarina" | 55
    /// `KAYLE` | "Kayle" | "Kayle" | 10
    /// `KAYN` | "Kayn" | "Kayn" | 141
    /// `KENNEN` | "Kennen" | "Kennen" | 85
    /// `KHA_ZIX` | "Kha'Zix" | "Khazix" | 121
    /// `KINDRED` | "Kindred" | "Kindred" | 203
    /// `KLED` | "Kled" | "Kled" | 240
    /// `KOG_MAW` | "Kog'Maw" | "KogMaw" | 96
    /// `LE_BLANC` | "LeBlanc" | "Leblanc" | 7
    /// `LEE_SIN` | "Lee Sin" | "LeeSin" | 64
    /// `LEONA` | "Leona" | "Leona" | 89
    /// `LILLIA` | "Lillia" | "Lillia" | 876
    /// `LISSANDRA` | "Lissandra" | "Lissandra" | 127
    /// `LOCKE` | "Locke" | "Locke" | 805
    /// `LUCIAN` | "Lucian" | "Lucian" | 236
    /// `LULU` | "Lulu" | "Lulu" | 117
    /// `LUX` | "Lux" | "Lux" | 99
    /// `MALPHITE` | "Malphite" | "Malphite" | 54
    /// `MALZAHAR` | "Malzahar" | "Malzahar" | 90
    /// `MAOKAI` | "Maokai" | "Maokai" | 57
    /// `MASTER_YI` | "Master Yi" | "MasterYi" | 11
    /// `MEL` | "Mel" | "Mel" | 800
    /// `MILIO` | "Milio" | "Milio" | 902
    /// `MISS_FORTUNE` | "Miss Fortune" | "MissFortune" | 21
    /// `MORDEKAISER` | "Mordekaiser" | "Mordekaiser" | 82
    /// `MORGANA` | "Morgana" | "Morgana" | 25
    /// `NAAFIRI` | "Naafiri" | "Naafiri" | 950
    /// `NAMI` | "Nami" | "Nami" | 267
    /// `NASUS` | "Nasus" | "Nasus" | 75
    /// `NAUTILUS` | "Nautilus" | "Nautilus" | 111
    /// `NEEKO` | "Neeko" | "Neeko" | 518
    /// `NIDALEE` | "Nidalee" | "Nidalee" | 76
    /// `NILAH` | "Nilah" | "Nilah" | 895
    /// `NOCTURNE` | "Nocturne" | "Nocturne" | 56
    /// `NUNU_WILLUMP` | "Nunu & Willump" | "Nunu" | 20
    /// `OLAF` | "Olaf" | "Olaf" | 2
    /// `ORIANNA` | "Orianna" | "Orianna" | 61
    /// `ORNN` | "Ornn" | "Ornn" | 516
    /// `PANTHEON` | "Pantheon" | "Pantheon" | 80
    /// `POPPY` | "Poppy" | "Poppy" | 78
    /// `PYKE` | "Pyke" | "Pyke" | 555
    /// `QIYANA` | "Qiyana" | "Qiyana" | 246
    /// `QUINN` | "Quinn" | "Quinn" | 133
    /// `RAKAN` | "Rakan" | "Rakan" | 497
    /// `RAMMUS` | "Rammus" | "Rammus" | 33
    /// `REK_SAI` | "Rek'Sai" | "RekSai" | 421
    /// `RELL` | "Rell" | "Rell" | 526
    /// `RENATA_GLASC` | "Renata Glasc" | "Renata" | 888
    /// `RENEKTON` | "Renekton" | "Renekton" | 58
    /// `RENGAR` | "Rengar" | "Rengar" | 107
    /// `RIVEN` | "Riven" | "Riven" | 92
    /// `RUMBLE` | "Rumble" | "Rumble" | 68
    /// `RYZE` | "Ryze" | "Ryze" | 13
    /// `SAMIRA` | "Samira" | "Samira" | 360
    /// `SEJUANI` | "Sejuani" | "Sejuani" | 113
    /// `SENNA` | "Senna" | "Senna" | 235
    /// `SERAPHINE` | "Seraphine" | "Seraphine" | 147
    /// `SETT` | "Sett" | "Sett" | 875
    /// `SHACO` | "Shaco" | "Shaco" | 35
    /// `SHEN` | "Shen" | "Shen" | 98
    /// `SHYVANA` | "Shyvana" | "Shyvana" | 102
    /// `SINGED` | "Singed" | "Singed" | 27
    /// `SION` | "Sion" | "Sion" | 14
    /// `SIVIR` | "Sivir" | "Sivir" | 15
    /// `SKARNER` | "Skarner" | "Skarner" | 72
    /// `SMOLDER` | "Smolder" | "Smolder" | 901
    /// `SONA` | "Sona" | "Sona" | 37
    /// `SORAKA` | "Soraka" | "Soraka" | 16
    /// `SWAIN` | "Swain" | "Swain" | 50
    /// `SYLAS` | "Sylas" | "Sylas" | 517
    /// `SYNDRA` | "Syndra" | "Syndra" | 134
    /// `TAHM_KENCH` | "Tahm Kench" | "TahmKench" | 223
    /// `TALIYAH` | "Taliyah" | "Taliyah" | 163
    /// `TALON` | "Talon" | "Talon" | 91
    /// `TARIC` | "Taric" | "Taric" | 44
    /// `TEEMO` | "Teemo" | "Teemo" | 17
    /// `THRESH` | "Thresh" | "Thresh" | 412
    /// `TRISTANA` | "Tristana" | "Tristana" | 18
    /// `TRUNDLE` | "Trundle" | "Trundle" | 48
    /// `TRYNDAMERE` | "Tryndamere" | "Tryndamere" | 23
    /// `TWISTED_FATE` | "Twisted Fate" | "TwistedFate" | 4
    /// `TWITCH` | "Twitch" | "Twitch" | 29
    /// `UDYR` | "Udyr" | "Udyr" | 77
    /// `URGOT` | "Urgot" | "Urgot" | 6
    /// `VARUS` | "Varus" | "Varus" | 110
    /// `VAYNE` | "Vayne" | "Vayne" | 67
    /// `VEIGAR` | "Veigar" | "Veigar" | 45
    /// `VEL_KOZ` | "Vel'Koz" | "Velkoz" | 161
    /// `VEX` | "Vex" | "Vex" | 711
    /// `VI` | "Vi" | "Vi" | 254
    /// `VIEGO` | "Viego" | "Viego" | 234
    /// `VIKTOR` | "Viktor" | "Viktor" | 112
    /// `VLADIMIR` | "Vladimir" | "Vladimir" | 8
    /// `VOLIBEAR` | "Volibear" | "Volibear" | 106
    /// `WARWICK` | "Warwick" | "Warwick" | 19
    /// `WUKONG` | "Wukong" | "MonkeyKing" | 62
    /// `XAYAH` | "Xayah" | "Xayah" | 498
    /// `XERATH` | "Xerath" | "Xerath" | 101
    /// `XIN_ZHAO` | "Xin Zhao" | "XinZhao" | 5
    /// `YASUO` | "Yasuo" | "Yasuo" | 157
    /// `YONE` | "Yone" | "Yone" | 777
    /// `YORICK` | "Yorick" | "Yorick" | 83
    /// `YUNARA` | "Yunara" | "Yunara" | 804
    /// `YUUMI` | "Yuumi" | "Yuumi" | 350
    /// `ZAAHEN` | "Zaahen" | "Zaahen" | 904
    /// `ZAC` | "Zac" | "Zac" | 154
    /// `ZED` | "Zed" | "Zed" | 238
    /// `ZERI` | "Zeri" | "Zeri" | 221
    /// `ZIGGS` | "Ziggs" | "Ziggs" | 115
    /// `ZILEAN` | "Zilean" | "Zilean" | 26
    /// `ZOE` | "Zoe" | "Zoe" | 142
    /// `ZYRA` | "Zyra" | "Zyra" | 143
    /// `CLASSIC_AHRI` | "Ahri" | "Jade_Ahri" | 60103
    /// `CLASSIC_AKALI` | "Akali" | "Jade_Akali" | 60084
    /// `CLASSIC_ALISTAR` | "Alistar" | "Jade_Alistar" | 60012
    /// `CLASSIC_AMUMU` | "Amumu" | "Jade_Amumu" | 60032
    /// `CLASSIC_ANIVIA` | "Anivia" | "Jade_Anivia" | 60034
    /// `CLASSIC_ANNIE` | "Annie" | "Jade_Annie" | 60001
    /// `CLASSIC_ASHE` | "Ashe" | "Jade_Ashe" | 60022
    /// `CLASSIC_BLITZCRANK` | "Blitzcrank" | "Jade_Blitzcrank" | 60053
    /// `CLASSIC_BRAND` | "Brand" | "Jade_Brand" | 60063
    /// `CLASSIC_CHO_GATH` | "Cho'Gath" | "Jade_Chogath" | 60031
    /// `CLASSIC_CORKI` | "Corki" | "Jade_Corki" | 60042
    /// `CLASSIC_DR_MUNDO` | "Dr. Mundo" | "Jade_DrMundo" | 60036
    /// `CLASSIC_EVELYNN` | "Evelynn" | "Jade_Evelynn" | 60028
    /// `CLASSIC_EZREAL` | "Ezreal" | "Jade_Ezreal" | 60081
    /// `CLASSIC_FIDDLESTICKS` | "Fiddlesticks" | "Jade_Fiddlesticks" | 60009
    /// `CLASSIC_GANGPLANK` | "Gangplank" | "Jade_Gangplank" | 60041
    /// `CLASSIC_GAREN` | "Garen" | "Jade_Garen" | 60086
    /// `CLASSIC_GRAGAS` | "Gragas" | "Jade_Gragas" | 60079
    /// `CLASSIC_HEIMERDINGER` | "Heimerdinger" | "Jade_Heimerdinger" | 60074
    /// `CLASSIC_JANNA` | "Janna" | "Jade_Janna" | 60040
    /// `CLASSIC_JARVAN_IV` | "Jarvan IV" | "Jade_JarvanIV" | 60059
    /// `CLASSIC_JAX` | "Jax" | "Jade_Jax" | 60024
    /// `CLASSIC_KARTHUS` | "Karthus" | "Jade_Karthus" | 60030
    /// `CLASSIC_KASSADIN` | "Kassadin" | "Jade_Kassadin" | 60038
    /// `CLASSIC_KATARINA` | "Katarina" | "Jade_Katarina" | 60055
    /// `CLASSIC_KAYLE` | "Kayle" | "Jade_Kayle" | 60010
    /// `CLASSIC_KENNEN` | "Kennen" | "Jade_Kennen" | 60085
    /// `CLASSIC_KOG_MAW` | "Kog'Maw" | "Jade_KogMaw" | 60096
    /// `CLASSIC_LEE_SIN` | "Lee Sin" | "Jade_LeeSin" | 60064
    /// `CLASSIC_LEONA` | "Leona" | "Jade_Leona" | 60089
    /// `CLASSIC_LULU` | "Lulu" | "Jade_Lulu" | 60117
    /// `CLASSIC_LUX` | "Lux" | "Jade_Lux" | 60099
    /// `CLASSIC_MALPHITE` | "Malphite" | "Jade_Malphite" | 60054
    /// `CLASSIC_MALZAHAR` | "Malzahar" | "Jade_Malzahar" | 60090
    /// `CLASSIC_MASTER_YI` | "Master Yi" | "Jade_MasterYi" | 60011
    /// `CLASSIC_MISS_FORTUNE` | "Miss Fortune" | "Jade_MissFortune" | 60021
    /// `CLASSIC_MORGANA` | "Morgana" | "Jade_Morgana" | 60025
    /// `CLASSIC_NASUS` | "Nasus" | "Jade_Nasus" | 60075
    /// `CLASSIC_NIDALEE` | "Nidalee" | "Jade_Nidalee" | 60076
    /// `CLASSIC_NUNU_WILLUMP` | "Nunu & Willump" | "Jade_Nunu" | 60020
    /// `CLASSIC_OLAF` | "Olaf" | "Jade_Olaf" | 60002
    /// `CLASSIC_PANTHEON` | "Pantheon" | "Jade_Pantheon" | 60080
    /// `CLASSIC_RAMMUS` | "Rammus" | "Jade_Rammus" | 60033
    /// `CLASSIC_RYZE` | "Ryze" | "Jade_Ryze" | 60013
    /// `CLASSIC_SHACO` | "Shaco" | "Jade_Shaco" | 60035
    /// `CLASSIC_SHEN` | "Shen" | "Jade_Shen" | 60098
    /// `CLASSIC_SINGED` | "Singed" | "Jade_Singed" | 60027
    /// `CLASSIC_SION` | "Sion" | "Jade_Sion" | 60014
    /// `CLASSIC_SIVIR` | "Sivir" | "Jade_Sivir" | 60015
    /// `CLASSIC_SKARNER` | "Skarner" | "Jade_Skarner" | 60072
    /// `CLASSIC_SONA` | "Sona" | "Jade_Sona" | 60037
    /// `CLASSIC_SORAKA` | "Soraka" | "Jade_Soraka" | 60016
    /// `CLASSIC_TARIC` | "Taric" | "Jade_Taric" | 60044
    /// `CLASSIC_TEEMO` | "Teemo" | "Jade_Teemo" | 60017
    /// `CLASSIC_TRISTANA` | "Tristana" | "Jade_Tristana" | 60018
    /// `CLASSIC_TRYNDAMERE` | "Tryndamere" | "Jade_Tryndamere" | 60023
    /// `CLASSIC_TWISTED_FATE` | "Twisted Fate" | "Jade_TwistedFate" | 60004
    /// `CLASSIC_TWITCH` | "Twitch" | "Jade_Twitch" | 60029
    /// `CLASSIC_VAYNE` | "Vayne" | "Jade_Vayne" | 60067
    /// `CLASSIC_VEIGAR` | "Veigar" | "Jade_Veigar" | 60045
    /// `CLASSIC_WARWICK` | "Warwick" | "Jade_Warwick" | 60019
    /// `CLASSIC_WUKONG` | "Wukong" | "Jade_Wukong" | 60062
    /// `CLASSIC_ZILEAN` | "Zilean" | "Jade_Zilean" | 60026
    pub newtype_enum Champion(i32) {
        /// `-1`, none. Appears when a champion ban is not used in champ select.
        NONE = -1,

        /// `266`.
        AATROX = 266,
        /// `103`.
        AHRI = 103,
        /// `84`.
        AKALI = 84,
        /// `166`.
        AKSHAN = 166,
        /// `12`.
        ALISTAR = 12,
        /// `799`.
        AMBESSA = 799,
        /// `32`.
        AMUMU = 32,
        /// `34`.
        ANIVIA = 34,
        /// `1`.
        ANNIE = 1,
        /// `523`.
        APHELIOS = 523,
        /// `22`.
        ASHE = 22,
        /// `136`.
        AURELION_SOL = 136,
        /// `893`.
        AURORA = 893,
        /// `268`.
        AZIR = 268,
        /// `432`.
        BARD = 432,
        /// `200`.
        BEL_VETH = 200,
        /// `53`.
        BLITZCRANK = 53,
        /// `63`.
        BRAND = 63,
        /// `201`.
        BRAUM = 201,
        /// `233`.
        BRIAR = 233,
        /// `51`.
        CAITLYN = 51,
        /// `164`.
        CAMILLE = 164,
        /// `69`.
        CASSIOPEIA = 69,
        /// `31`.
        CHO_GATH = 31,
        /// `42`.
        CORKI = 42,
        /// `122`.
        DARIUS = 122,
        /// `131`.
        DIANA = 131,
        /// `36`.
        DR_MUNDO = 36,
        /// `119`.
        DRAVEN = 119,
        /// `245`.
        EKKO = 245,
        /// `60`.
        ELISE = 60,
        /// `28`.
        EVELYNN = 28,
        /// `81`.
        EZREAL = 81,
        /// `9`.
        FIDDLESTICKS = 9,
        /// `114`.
        FIORA = 114,
        /// `105`.
        FIZZ = 105,
        /// `3`.
        GALIO = 3,
        /// `41`.
        GANGPLANK = 41,
        /// `86`.
        GAREN = 86,
        /// `150`.
        GNAR = 150,
        /// `79`.
        GRAGAS = 79,
        /// `104`.
        GRAVES = 104,
        /// `887`.
        GWEN = 887,
        /// `120`.
        HECARIM = 120,
        /// `74`.
        HEIMERDINGER = 74,
        /// `910`.
        HWEI = 910,
        /// `420`.
        ILLAOI = 420,
        /// `39`.
        IRELIA = 39,
        /// `427`.
        IVERN = 427,
        /// `40`.
        JANNA = 40,
        /// `59`.
        JARVAN_IV = 59,
        /// `24`.
        JAX = 24,
        /// `126`.
        JAYCE = 126,
        /// `202`.
        JHIN = 202,
        /// `222`.
        JINX = 222,
        /// `897`.
        K_SANTE = 897,
        /// `145`.
        KAI_SA = 145,
        /// `429`.
        KALISTA = 429,
        /// `43`.
        KARMA = 43,
        /// `30`.
        KARTHUS = 30,
        /// `38`.
        KASSADIN = 38,
        /// `55`.
        KATARINA = 55,
        /// `10`.
        KAYLE = 10,
        /// `141`.
        KAYN = 141,
        /// `85`.
        KENNEN = 85,
        /// `121`.
        KHA_ZIX = 121,
        /// `203`.
        KINDRED = 203,
        /// `240`.
        KLED = 240,
        /// `96`.
        KOG_MAW = 96,
        /// `7`.
        LE_BLANC = 7,
        /// `64`.
        LEE_SIN = 64,
        /// `89`.
        LEONA = 89,
        /// `876`.
        LILLIA = 876,
        /// `127`.
        LISSANDRA = 127,
        /// `805`.
        LOCKE = 805,
        /// `236`.
        LUCIAN = 236,
        /// `117`.
        LULU = 117,
        /// `99`.
        LUX = 99,
        /// `54`.
        MALPHITE = 54,
        /// `90`.
        MALZAHAR = 90,
        /// `57`.
        MAOKAI = 57,
        /// `11`.
        MASTER_YI = 11,
        /// `800`.
        MEL = 800,
        /// `902`.
        MILIO = 902,
        /// `21`.
        MISS_FORTUNE = 21,
        /// `82`.
        MORDEKAISER = 82,
        /// `25`.
        MORGANA = 25,
        /// `950`.
        NAAFIRI = 950,
        /// `267`.
        NAMI = 267,
        /// `75`.
        NASUS = 75,
        /// `111`.
        NAUTILUS = 111,
        /// `518`.
        NEEKO = 518,
        /// `76`.
        NIDALEE = 76,
        /// `895`.
        NILAH = 895,
        /// `56`.
        NOCTURNE = 56,
        /// `20`.
        NUNU_WILLUMP = 20,
        /// `2`.
        OLAF = 2,
        /// `61`.
        ORIANNA = 61,
        /// `516`.
        ORNN = 516,
        /// `80`.
        PANTHEON = 80,
        /// `78`.
        POPPY = 78,
        /// `555`.
        PYKE = 555,
        /// `246`.
        QIYANA = 246,
        /// `133`.
        QUINN = 133,
        /// `497`.
        RAKAN = 497,
        /// `33`.
        RAMMUS = 33,
        /// `421`.
        REK_SAI = 421,
        /// `526`.
        RELL = 526,
        /// `888`.
        RENATA_GLASC = 888,
        /// `58`.
        RENEKTON = 58,
        /// `107`.
        RENGAR = 107,
        /// `92`.
        RIVEN = 92,
        /// `68`.
        RUMBLE = 68,
        /// `13`.
        RYZE = 13,
        /// `360`.
        SAMIRA = 360,
        /// `113`.
        SEJUANI = 113,
        /// `235`.
        SENNA = 235,
        /// `147`.
        SERAPHINE = 147,
        /// `875`.
        SETT = 875,
        /// `35`.
        SHACO = 35,
        /// `98`.
        SHEN = 98,
        /// `102`.
        SHYVANA = 102,
        /// `27`.
        SINGED = 27,
        /// `14`.
        SION = 14,
        /// `15`.
        SIVIR = 15,
        /// `72`.
        SKARNER = 72,
        /// `901`.
        SMOLDER = 901,
        /// `37`.
        SONA = 37,
        /// `16`.
        SORAKA = 16,
        /// `50`.
        SWAIN = 50,
        /// `517`.
        SYLAS = 517,
        /// `134`.
        SYNDRA = 134,
        /// `223`.
        TAHM_KENCH = 223,
        /// `163`.
        TALIYAH = 163,
        /// `91`.
        TALON = 91,
        /// `44`.
        TARIC = 44,
        /// `17`.
        TEEMO = 17,
        /// `412`.
        THRESH = 412,
        /// `18`.
        TRISTANA = 18,
        /// `48`.
        TRUNDLE = 48,
        /// `23`.
        TRYNDAMERE = 23,
        /// `4`.
        TWISTED_FATE = 4,
        /// `29`.
        TWITCH = 29,
        /// `77`.
        UDYR = 77,
        /// `6`.
        URGOT = 6,
        /// `110`.
        VARUS = 110,
        /// `67`.
        VAYNE = 67,
        /// `45`.
        VEIGAR = 45,
        /// `161`.
        VEL_KOZ = 161,
        /// `711`.
        VEX = 711,
        /// `254`.
        VI = 254,
        /// `234`.
        VIEGO = 234,
        /// `112`.
        VIKTOR = 112,
        /// `8`.
        VLADIMIR = 8,
        /// `106`.
        VOLIBEAR = 106,
        /// `19`.
        WARWICK = 19,
        /// `62`.
        WUKONG = 62,
        /// `498`.
        XAYAH = 498,
        /// `101`.
        XERATH = 101,
        /// `5`.
        XIN_ZHAO = 5,
        /// `157`.
        YASUO = 157,
        /// `777`.
        YONE = 777,
        /// `83`.
        YORICK = 83,
        /// `804`.
        YUNARA = 804,
        /// `350`.
        YUUMI = 350,
        /// `904`.
        ZAAHEN = 904,
        /// `154`.
        ZAC = 154,
        /// `238`.
        ZED = 238,
        /// `221`.
        ZERI = 221,
        /// `115`.
        ZIGGS = 115,
        /// `26`.
        ZILEAN = 26,
        /// `142`.
        ZOE = 142,
        /// `143`.
        ZYRA = 143,
        /// `60103`.
        CLASSIC_AHRI = 60103,
        /// `60084`.
        CLASSIC_AKALI = 60084,
        /// `60012`.
        CLASSIC_ALISTAR = 60012,
        /// `60032`.
        CLASSIC_AMUMU = 60032,
        /// `60034`.
        CLASSIC_ANIVIA = 60034,
        /// `60001`.
        CLASSIC_ANNIE = 60001,
        /// `60022`.
        CLASSIC_ASHE = 60022,
        /// `60053`.
        CLASSIC_BLITZCRANK = 60053,
        /// `60063`.
        CLASSIC_BRAND = 60063,
        /// `60031`.
        CLASSIC_CHO_GATH = 60031,
        /// `60042`.
        CLASSIC_CORKI = 60042,
        /// `60036`.
        CLASSIC_DR_MUNDO = 60036,
        /// `60028`.
        CLASSIC_EVELYNN = 60028,
        /// `60081`.
        CLASSIC_EZREAL = 60081,
        /// `60009`.
        CLASSIC_FIDDLESTICKS = 60009,
        /// `60041`.
        CLASSIC_GANGPLANK = 60041,
        /// `60086`.
        CLASSIC_GAREN = 60086,
        /// `60079`.
        CLASSIC_GRAGAS = 60079,
        /// `60074`.
        CLASSIC_HEIMERDINGER = 60074,
        /// `60040`.
        CLASSIC_JANNA = 60040,
        /// `60059`.
        CLASSIC_JARVAN_IV = 60059,
        /// `60024`.
        CLASSIC_JAX = 60024,
        /// `60030`.
        CLASSIC_KARTHUS = 60030,
        /// `60038`.
        CLASSIC_KASSADIN = 60038,
        /// `60055`.
        CLASSIC_KATARINA = 60055,
        /// `60010`.
        CLASSIC_KAYLE = 60010,
        /// `60085`.
        CLASSIC_KENNEN = 60085,
        /// `60096`.
        CLASSIC_KOG_MAW = 60096,
        /// `60064`.
        CLASSIC_LEE_SIN = 60064,
        /// `60089`.
        CLASSIC_LEONA = 60089,
        /// `60117`.
        CLASSIC_LULU = 60117,
        /// `60099`.
        CLASSIC_LUX = 60099,
        /// `60054`.
        CLASSIC_MALPHITE = 60054,
        /// `60090`.
        CLASSIC_MALZAHAR = 60090,
        /// `60011`.
        CLASSIC_MASTER_YI = 60011,
        /// `60021`.
        CLASSIC_MISS_FORTUNE = 60021,
        /// `60025`.
        CLASSIC_MORGANA = 60025,
        /// `60075`.
        CLASSIC_NASUS = 60075,
        /// `60076`.
        CLASSIC_NIDALEE = 60076,
        /// `60020`.
        CLASSIC_NUNU_WILLUMP = 60020,
        /// `60002`.
        CLASSIC_OLAF = 60002,
        /// `60080`.
        CLASSIC_PANTHEON = 60080,
        /// `60033`.
        CLASSIC_RAMMUS = 60033,
        /// `60013`.
        CLASSIC_RYZE = 60013,
        /// `60035`.
        CLASSIC_SHACO = 60035,
        /// `60098`.
        CLASSIC_SHEN = 60098,
        /// `60027`.
        CLASSIC_SINGED = 60027,
        /// `60014`.
        CLASSIC_SION = 60014,
        /// `60015`.
        CLASSIC_SIVIR = 60015,
        /// `60072`.
        CLASSIC_SKARNER = 60072,
        /// `60037`.
        CLASSIC_SONA = 60037,
        /// `60016`.
        CLASSIC_SORAKA = 60016,
        /// `60044`.
        CLASSIC_TARIC = 60044,
        /// `60017`.
        CLASSIC_TEEMO = 60017,
        /// `60018`.
        CLASSIC_TRISTANA = 60018,
        /// `60023`.
        CLASSIC_TRYNDAMERE = 60023,
        /// `60004`.
        CLASSIC_TWISTED_FATE = 60004,
        /// `60029`.
        CLASSIC_TWITCH = 60029,
        /// `60067`.
        CLASSIC_VAYNE = 60067,
        /// `60045`.
        CLASSIC_VEIGAR = 60045,
        /// `60019`.
        CLASSIC_WARWICK = 60019,
        /// `60062`.
        CLASSIC_WUKONG = 60062,
        /// `60026`.
        CLASSIC_ZILEAN = 60026,
    }
}

impl Champion {
    /// The champion's name (`en_US` localization).
    pub const fn name(self) -> Option<&'static str> {
        match self {
            Self::AATROX                 => Some("Aatrox"),
            Self::AHRI                   => Some("Ahri"),
            Self::AKALI                  => Some("Akali"),
            Self::AKSHAN                 => Some("Akshan"),
            Self::ALISTAR                => Some("Alistar"),
            Self::AMBESSA                => Some("Ambessa"),
            Self::AMUMU                  => Some("Amumu"),
            Self::ANIVIA                 => Some("Anivia"),
            Self::ANNIE                  => Some("Annie"),
            Self::APHELIOS               => Some("Aphelios"),
            Self::ASHE                   => Some("Ashe"),
            Self::AURELION_SOL           => Some("Aurelion Sol"),
            Self::AURORA                 => Some("Aurora"),
            Self::AZIR                   => Some("Azir"),
            Self::BARD                   => Some("Bard"),
            Self::BEL_VETH               => Some("Bel'Veth"),
            Self::BLITZCRANK             => Some("Blitzcrank"),
            Self::BRAND                  => Some("Brand"),
            Self::BRAUM                  => Some("Braum"),
            Self::BRIAR                  => Some("Briar"),
            Self::CAITLYN                => Some("Caitlyn"),
            Self::CAMILLE                => Some("Camille"),
            Self::CASSIOPEIA             => Some("Cassiopeia"),
            Self::CHO_GATH               => Some("Cho'Gath"),
            Self::CORKI                  => Some("Corki"),
            Self::DARIUS                 => Some("Darius"),
            Self::DIANA                  => Some("Diana"),
            Self::DR_MUNDO               => Some("Dr. Mundo"),
            Self::DRAVEN                 => Some("Draven"),
            Self::EKKO                   => Some("Ekko"),
            Self::ELISE                  => Some("Elise"),
            Self::EVELYNN                => Some("Evelynn"),
            Self::EZREAL                 => Some("Ezreal"),
            Self::FIDDLESTICKS           => Some("Fiddlesticks"),
            Self::FIORA                  => Some("Fiora"),
            Self::FIZZ                   => Some("Fizz"),
            Self::GALIO                  => Some("Galio"),
            Self::GANGPLANK              => Some("Gangplank"),
            Self::GAREN                  => Some("Garen"),
            Self::GNAR                   => Some("Gnar"),
            Self::GRAGAS                 => Some("Gragas"),
            Self::GRAVES                 => Some("Graves"),
            Self::GWEN                   => Some("Gwen"),
            Self::HECARIM                => Some("Hecarim"),
            Self::HEIMERDINGER           => Some("Heimerdinger"),
            Self::HWEI                   => Some("Hwei"),
            Self::ILLAOI                 => Some("Illaoi"),
            Self::IRELIA                 => Some("Irelia"),
            Self::IVERN                  => Some("Ivern"),
            Self::JANNA                  => Some("Janna"),
            Self::JARVAN_IV              => Some("Jarvan IV"),
            Self::JAX                    => Some("Jax"),
            Self::JAYCE                  => Some("Jayce"),
            Self::JHIN                   => Some("Jhin"),
            Self::JINX                   => Some("Jinx"),
            Self::K_SANTE                => Some("K'Sante"),
            Self::KAI_SA                 => Some("Kai'Sa"),
            Self::KALISTA                => Some("Kalista"),
            Self::KARMA                  => Some("Karma"),
            Self::KARTHUS                => Some("Karthus"),
            Self::KASSADIN               => Some("Kassadin"),
            Self::KATARINA               => Some("Katarina"),
            Self::KAYLE                  => Some("Kayle"),
            Self::KAYN                   => Some("Kayn"),
            Self::KENNEN                 => Some("Kennen"),
            Self::KHA_ZIX                => Some("Kha'Zix"),
            Self::KINDRED                => Some("Kindred"),
            Self::KLED                   => Some("Kled"),
            Self::KOG_MAW                => Some("Kog'Maw"),
            Self::LE_BLANC               => Some("LeBlanc"),
            Self::LEE_SIN                => Some("Lee Sin"),
            Self::LEONA                  => Some("Leona"),
            Self::LILLIA                 => Some("Lillia"),
            Self::LISSANDRA              => Some("Lissandra"),
            Self::LOCKE                  => Some("Locke"),
            Self::LUCIAN                 => Some("Lucian"),
            Self::LULU                   => Some("Lulu"),
            Self::LUX                    => Some("Lux"),
            Self::MALPHITE               => Some("Malphite"),
            Self::MALZAHAR               => Some("Malzahar"),
            Self::MAOKAI                 => Some("Maokai"),
            Self::MASTER_YI              => Some("Master Yi"),
            Self::MEL                    => Some("Mel"),
            Self::MILIO                  => Some("Milio"),
            Self::MISS_FORTUNE           => Some("Miss Fortune"),
            Self::MORDEKAISER            => Some("Mordekaiser"),
            Self::MORGANA                => Some("Morgana"),
            Self::NAAFIRI                => Some("Naafiri"),
            Self::NAMI                   => Some("Nami"),
            Self::NASUS                  => Some("Nasus"),
            Self::NAUTILUS               => Some("Nautilus"),
            Self::NEEKO                  => Some("Neeko"),
            Self::NIDALEE                => Some("Nidalee"),
            Self::NILAH                  => Some("Nilah"),
            Self::NOCTURNE               => Some("Nocturne"),
            Self::NUNU_WILLUMP           => Some("Nunu & Willump"),
            Self::OLAF                   => Some("Olaf"),
            Self::ORIANNA                => Some("Orianna"),
            Self::ORNN                   => Some("Ornn"),
            Self::PANTHEON               => Some("Pantheon"),
            Self::POPPY                  => Some("Poppy"),
            Self::PYKE                   => Some("Pyke"),
            Self::QIYANA                 => Some("Qiyana"),
            Self::QUINN                  => Some("Quinn"),
            Self::RAKAN                  => Some("Rakan"),
            Self::RAMMUS                 => Some("Rammus"),
            Self::REK_SAI                => Some("Rek'Sai"),
            Self::RELL                   => Some("Rell"),
            Self::RENATA_GLASC           => Some("Renata Glasc"),
            Self::RENEKTON               => Some("Renekton"),
            Self::RENGAR                 => Some("Rengar"),
            Self::RIVEN                  => Some("Riven"),
            Self::RUMBLE                 => Some("Rumble"),
            Self::RYZE                   => Some("Ryze"),
            Self::SAMIRA                 => Some("Samira"),
            Self::SEJUANI                => Some("Sejuani"),
            Self::SENNA                  => Some("Senna"),
            Self::SERAPHINE              => Some("Seraphine"),
            Self::SETT                   => Some("Sett"),
            Self::SHACO                  => Some("Shaco"),
            Self::SHEN                   => Some("Shen"),
            Self::SHYVANA                => Some("Shyvana"),
            Self::SINGED                 => Some("Singed"),
            Self::SION                   => Some("Sion"),
            Self::SIVIR                  => Some("Sivir"),
            Self::SKARNER                => Some("Skarner"),
            Self::SMOLDER                => Some("Smolder"),
            Self::SONA                   => Some("Sona"),
            Self::SORAKA                 => Some("Soraka"),
            Self::SWAIN                  => Some("Swain"),
            Self::SYLAS                  => Some("Sylas"),
            Self::SYNDRA                 => Some("Syndra"),
            Self::TAHM_KENCH             => Some("Tahm Kench"),
            Self::TALIYAH                => Some("Taliyah"),
            Self::TALON                  => Some("Talon"),
            Self::TARIC                  => Some("Taric"),
            Self::TEEMO                  => Some("Teemo"),
            Self::THRESH                 => Some("Thresh"),
            Self::TRISTANA               => Some("Tristana"),
            Self::TRUNDLE                => Some("Trundle"),
            Self::TRYNDAMERE             => Some("Tryndamere"),
            Self::TWISTED_FATE           => Some("Twisted Fate"),
            Self::TWITCH                 => Some("Twitch"),
            Self::UDYR                   => Some("Udyr"),
            Self::URGOT                  => Some("Urgot"),
            Self::VARUS                  => Some("Varus"),
            Self::VAYNE                  => Some("Vayne"),
            Self::VEIGAR                 => Some("Veigar"),
            Self::VEL_KOZ                => Some("Vel'Koz"),
            Self::VEX                    => Some("Vex"),
            Self::VI                     => Some("Vi"),
            Self::VIEGO                  => Some("Viego"),
            Self::VIKTOR                 => Some("Viktor"),
            Self::VLADIMIR               => Some("Vladimir"),
            Self::VOLIBEAR               => Some("Volibear"),
            Self::WARWICK                => Some("Warwick"),
            Self::WUKONG                 => Some("Wukong"),
            Self::XAYAH                  => Some("Xayah"),
            Self::XERATH                 => Some("Xerath"),
            Self::XIN_ZHAO               => Some("Xin Zhao"),
            Self::YASUO                  => Some("Yasuo"),
            Self::YONE                   => Some("Yone"),
            Self::YORICK                 => Some("Yorick"),
            Self::YUNARA                 => Some("Yunara"),
            Self::YUUMI                  => Some("Yuumi"),
            Self::ZAAHEN                 => Some("Zaahen"),
            Self::ZAC                    => Some("Zac"),
            Self::ZED                    => Some("Zed"),
            Self::ZERI                   => Some("Zeri"),
            Self::ZIGGS                  => Some("Ziggs"),
            Self::ZILEAN                 => Some("Zilean"),
            Self::ZOE                    => Some("Zoe"),
            Self::ZYRA                   => Some("Zyra"),
            Self::CLASSIC_AHRI           => Some("Ahri"),
            Self::CLASSIC_AKALI          => Some("Akali"),
            Self::CLASSIC_ALISTAR        => Some("Alistar"),
            Self::CLASSIC_AMUMU          => Some("Amumu"),
            Self::CLASSIC_ANIVIA         => Some("Anivia"),
            Self::CLASSIC_ANNIE          => Some("Annie"),
            Self::CLASSIC_ASHE           => Some("Ashe"),
            Self::CLASSIC_BLITZCRANK     => Some("Blitzcrank"),
            Self::CLASSIC_BRAND          => Some("Brand"),
            Self::CLASSIC_CHO_GATH       => Some("Cho'Gath"),
            Self::CLASSIC_CORKI          => Some("Corki"),
            Self::CLASSIC_DR_MUNDO       => Some("Dr. Mundo"),
            Self::CLASSIC_EVELYNN        => Some("Evelynn"),
            Self::CLASSIC_EZREAL         => Some("Ezreal"),
            Self::CLASSIC_FIDDLESTICKS   => Some("Fiddlesticks"),
            Self::CLASSIC_GANGPLANK      => Some("Gangplank"),
            Self::CLASSIC_GAREN          => Some("Garen"),
            Self::CLASSIC_GRAGAS         => Some("Gragas"),
            Self::CLASSIC_HEIMERDINGER   => Some("Heimerdinger"),
            Self::CLASSIC_JANNA          => Some("Janna"),
            Self::CLASSIC_JARVAN_IV      => Some("Jarvan IV"),
            Self::CLASSIC_JAX            => Some("Jax"),
            Self::CLASSIC_KARTHUS        => Some("Karthus"),
            Self::CLASSIC_KASSADIN       => Some("Kassadin"),
            Self::CLASSIC_KATARINA       => Some("Katarina"),
            Self::CLASSIC_KAYLE          => Some("Kayle"),
            Self::CLASSIC_KENNEN         => Some("Kennen"),
            Self::CLASSIC_KOG_MAW        => Some("Kog'Maw"),
            Self::CLASSIC_LEE_SIN        => Some("Lee Sin"),
            Self::CLASSIC_LEONA          => Some("Leona"),
            Self::CLASSIC_LULU           => Some("Lulu"),
            Self::CLASSIC_LUX            => Some("Lux"),
            Self::CLASSIC_MALPHITE       => Some("Malphite"),
            Self::CLASSIC_MALZAHAR       => Some("Malzahar"),
            Self::CLASSIC_MASTER_YI      => Some("Master Yi"),
            Self::CLASSIC_MISS_FORTUNE   => Some("Miss Fortune"),
            Self::CLASSIC_MORGANA        => Some("Morgana"),
            Self::CLASSIC_NASUS          => Some("Nasus"),
            Self::CLASSIC_NIDALEE        => Some("Nidalee"),
            Self::CLASSIC_NUNU_WILLUMP   => Some("Nunu & Willump"),
            Self::CLASSIC_OLAF           => Some("Olaf"),
            Self::CLASSIC_PANTHEON       => Some("Pantheon"),
            Self::CLASSIC_RAMMUS         => Some("Rammus"),
            Self::CLASSIC_RYZE           => Some("Ryze"),
            Self::CLASSIC_SHACO          => Some("Shaco"),
            Self::CLASSIC_SHEN           => Some("Shen"),
            Self::CLASSIC_SINGED         => Some("Singed"),
            Self::CLASSIC_SION           => Some("Sion"),
            Self::CLASSIC_SIVIR          => Some("Sivir"),
            Self::CLASSIC_SKARNER        => Some("Skarner"),
            Self::CLASSIC_SONA           => Some("Sona"),
            Self::CLASSIC_SORAKA         => Some("Soraka"),
            Self::CLASSIC_TARIC          => Some("Taric"),
            Self::CLASSIC_TEEMO          => Some("Teemo"),
            Self::CLASSIC_TRISTANA       => Some("Tristana"),
            Self::CLASSIC_TRYNDAMERE     => Some("Tryndamere"),
            Self::CLASSIC_TWISTED_FATE   => Some("Twisted Fate"),
            Self::CLASSIC_TWITCH         => Some("Twitch"),
            Self::CLASSIC_VAYNE          => Some("Vayne"),
            Self::CLASSIC_VEIGAR         => Some("Veigar"),
            Self::CLASSIC_WARWICK        => Some("Warwick"),
            Self::CLASSIC_WUKONG         => Some("Wukong"),
            Self::CLASSIC_ZILEAN         => Some("Zilean"),
            _ => None,
        }
    }

    /// The champion's identifier key. Somtimes called "key", "identifier", or "alias".
    /// This is mainly used in DDragon paths.
    ///
    /// This is generally the `en_US` name with spaces and punctuation removed,
    /// capitalization preserved, however the follow are exceptions:
    ///
    /// Field | Name | Identifier | Id
    /// ---|---|---|---
    /// `BEL_VETH` | "Bel'Veth" | "Belveth" | 200
    /// `CHO_GATH` | "Cho'Gath" | "Chogath" | 31
    /// `FIDDLESTICKS` | "Fiddlesticks" | "FiddleSticks" | 9
    /// `KAI_SA` | "Kai'Sa" | "Kaisa" | 145
    /// `KHA_ZIX` | "Kha'Zix" | "Khazix" | 121
    /// `LE_BLANC` | "LeBlanc" | "Leblanc" | 7
    /// `NUNU_WILLUMP` | "Nunu & Willump" | "Nunu" | 20
    /// `RENATA_GLASC` | "Renata Glasc" | "Renata" | 888
    /// `VEL_KOZ` | "Vel'Koz" | "Velkoz" | 161
    /// `WUKONG` | "Wukong" | "MonkeyKing" | 62
    /// `CLASSIC_AHRI` | "Ahri" | "Jade_Ahri" | 60103
    /// `CLASSIC_AKALI` | "Akali" | "Jade_Akali" | 60084
    /// `CLASSIC_ALISTAR` | "Alistar" | "Jade_Alistar" | 60012
    /// `CLASSIC_AMUMU` | "Amumu" | "Jade_Amumu" | 60032
    /// `CLASSIC_ANIVIA` | "Anivia" | "Jade_Anivia" | 60034
    /// `CLASSIC_ANNIE` | "Annie" | "Jade_Annie" | 60001
    /// `CLASSIC_ASHE` | "Ashe" | "Jade_Ashe" | 60022
    /// `CLASSIC_BLITZCRANK` | "Blitzcrank" | "Jade_Blitzcrank" | 60053
    /// `CLASSIC_BRAND` | "Brand" | "Jade_Brand" | 60063
    /// `CLASSIC_CHO_GATH` | "Cho'Gath" | "Jade_Chogath" | 60031
    /// `CLASSIC_CORKI` | "Corki" | "Jade_Corki" | 60042
    /// `CLASSIC_DR_MUNDO` | "Dr. Mundo" | "Jade_DrMundo" | 60036
    /// `CLASSIC_EVELYNN` | "Evelynn" | "Jade_Evelynn" | 60028
    /// `CLASSIC_EZREAL` | "Ezreal" | "Jade_Ezreal" | 60081
    /// `CLASSIC_FIDDLESTICKS` | "Fiddlesticks" | "Jade_Fiddlesticks" | 60009
    /// `CLASSIC_GANGPLANK` | "Gangplank" | "Jade_Gangplank" | 60041
    /// `CLASSIC_GAREN` | "Garen" | "Jade_Garen" | 60086
    /// `CLASSIC_GRAGAS` | "Gragas" | "Jade_Gragas" | 60079
    /// `CLASSIC_HEIMERDINGER` | "Heimerdinger" | "Jade_Heimerdinger" | 60074
    /// `CLASSIC_JANNA` | "Janna" | "Jade_Janna" | 60040
    /// `CLASSIC_JARVAN_IV` | "Jarvan IV" | "Jade_JarvanIV" | 60059
    /// `CLASSIC_JAX` | "Jax" | "Jade_Jax" | 60024
    /// `CLASSIC_KARTHUS` | "Karthus" | "Jade_Karthus" | 60030
    /// `CLASSIC_KASSADIN` | "Kassadin" | "Jade_Kassadin" | 60038
    /// `CLASSIC_KATARINA` | "Katarina" | "Jade_Katarina" | 60055
    /// `CLASSIC_KAYLE` | "Kayle" | "Jade_Kayle" | 60010
    /// `CLASSIC_KENNEN` | "Kennen" | "Jade_Kennen" | 60085
    /// `CLASSIC_KOG_MAW` | "Kog'Maw" | "Jade_KogMaw" | 60096
    /// `CLASSIC_LEE_SIN` | "Lee Sin" | "Jade_LeeSin" | 60064
    /// `CLASSIC_LEONA` | "Leona" | "Jade_Leona" | 60089
    /// `CLASSIC_LULU` | "Lulu" | "Jade_Lulu" | 60117
    /// `CLASSIC_LUX` | "Lux" | "Jade_Lux" | 60099
    /// `CLASSIC_MALPHITE` | "Malphite" | "Jade_Malphite" | 60054
    /// `CLASSIC_MALZAHAR` | "Malzahar" | "Jade_Malzahar" | 60090
    /// `CLASSIC_MASTER_YI` | "Master Yi" | "Jade_MasterYi" | 60011
    /// `CLASSIC_MISS_FORTUNE` | "Miss Fortune" | "Jade_MissFortune" | 60021
    /// `CLASSIC_MORGANA` | "Morgana" | "Jade_Morgana" | 60025
    /// `CLASSIC_NASUS` | "Nasus" | "Jade_Nasus" | 60075
    /// `CLASSIC_NIDALEE` | "Nidalee" | "Jade_Nidalee" | 60076
    /// `CLASSIC_NUNU_WILLUMP` | "Nunu & Willump" | "Jade_Nunu" | 60020
    /// `CLASSIC_OLAF` | "Olaf" | "Jade_Olaf" | 60002
    /// `CLASSIC_PANTHEON` | "Pantheon" | "Jade_Pantheon" | 60080
    /// `CLASSIC_RAMMUS` | "Rammus" | "Jade_Rammus" | 60033
    /// `CLASSIC_RYZE` | "Ryze" | "Jade_Ryze" | 60013
    /// `CLASSIC_SHACO` | "Shaco" | "Jade_Shaco" | 60035
    /// `CLASSIC_SHEN` | "Shen" | "Jade_Shen" | 60098
    /// `CLASSIC_SINGED` | "Singed" | "Jade_Singed" | 60027
    /// `CLASSIC_SION` | "Sion" | "Jade_Sion" | 60014
    /// `CLASSIC_SIVIR` | "Sivir" | "Jade_Sivir" | 60015
    /// `CLASSIC_SKARNER` | "Skarner" | "Jade_Skarner" | 60072
    /// `CLASSIC_SONA` | "Sona" | "Jade_Sona" | 60037
    /// `CLASSIC_SORAKA` | "Soraka" | "Jade_Soraka" | 60016
    /// `CLASSIC_TARIC` | "Taric" | "Jade_Taric" | 60044
    /// `CLASSIC_TEEMO` | "Teemo" | "Jade_Teemo" | 60017
    /// `CLASSIC_TRISTANA` | "Tristana" | "Jade_Tristana" | 60018
    /// `CLASSIC_TRYNDAMERE` | "Tryndamere" | "Jade_Tryndamere" | 60023
    /// `CLASSIC_TWISTED_FATE` | "Twisted Fate" | "Jade_TwistedFate" | 60004
    /// `CLASSIC_TWITCH` | "Twitch" | "Jade_Twitch" | 60029
    /// `CLASSIC_VAYNE` | "Vayne" | "Jade_Vayne" | 60067
    /// `CLASSIC_VEIGAR` | "Veigar" | "Jade_Veigar" | 60045
    /// `CLASSIC_WARWICK` | "Warwick" | "Jade_Warwick" | 60019
    /// `CLASSIC_WUKONG` | "Wukong" | "Jade_Wukong" | 60062
    /// `CLASSIC_ZILEAN` | "Zilean" | "Jade_Zilean" | 60026
    pub const fn identifier(self) -> Option<&'static str> {
        match self {
            Self::AATROX                 => Some("Aatrox"),
            Self::AHRI                   => Some("Ahri"),
            Self::AKALI                  => Some("Akali"),
            Self::AKSHAN                 => Some("Akshan"),
            Self::ALISTAR                => Some("Alistar"),
            Self::AMBESSA                => Some("Ambessa"),
            Self::AMUMU                  => Some("Amumu"),
            Self::ANIVIA                 => Some("Anivia"),
            Self::ANNIE                  => Some("Annie"),
            Self::APHELIOS               => Some("Aphelios"),
            Self::ASHE                   => Some("Ashe"),
            Self::AURELION_SOL           => Some("AurelionSol"),
            Self::AURORA                 => Some("Aurora"),
            Self::AZIR                   => Some("Azir"),
            Self::BARD                   => Some("Bard"),
            Self::BEL_VETH               => Some("Belveth"),
            Self::BLITZCRANK             => Some("Blitzcrank"),
            Self::BRAND                  => Some("Brand"),
            Self::BRAUM                  => Some("Braum"),
            Self::BRIAR                  => Some("Briar"),
            Self::CAITLYN                => Some("Caitlyn"),
            Self::CAMILLE                => Some("Camille"),
            Self::CASSIOPEIA             => Some("Cassiopeia"),
            Self::CHO_GATH               => Some("Chogath"),
            Self::CORKI                  => Some("Corki"),
            Self::DARIUS                 => Some("Darius"),
            Self::DIANA                  => Some("Diana"),
            Self::DR_MUNDO               => Some("DrMundo"),
            Self::DRAVEN                 => Some("Draven"),
            Self::EKKO                   => Some("Ekko"),
            Self::ELISE                  => Some("Elise"),
            Self::EVELYNN                => Some("Evelynn"),
            Self::EZREAL                 => Some("Ezreal"),
            Self::FIDDLESTICKS           => Some("FiddleSticks"),
            Self::FIORA                  => Some("Fiora"),
            Self::FIZZ                   => Some("Fizz"),
            Self::GALIO                  => Some("Galio"),
            Self::GANGPLANK              => Some("Gangplank"),
            Self::GAREN                  => Some("Garen"),
            Self::GNAR                   => Some("Gnar"),
            Self::GRAGAS                 => Some("Gragas"),
            Self::GRAVES                 => Some("Graves"),
            Self::GWEN                   => Some("Gwen"),
            Self::HECARIM                => Some("Hecarim"),
            Self::HEIMERDINGER           => Some("Heimerdinger"),
            Self::HWEI                   => Some("Hwei"),
            Self::ILLAOI                 => Some("Illaoi"),
            Self::IRELIA                 => Some("Irelia"),
            Self::IVERN                  => Some("Ivern"),
            Self::JANNA                  => Some("Janna"),
            Self::JARVAN_IV              => Some("JarvanIV"),
            Self::JAX                    => Some("Jax"),
            Self::JAYCE                  => Some("Jayce"),
            Self::JHIN                   => Some("Jhin"),
            Self::JINX                   => Some("Jinx"),
            Self::K_SANTE                => Some("KSante"),
            Self::KAI_SA                 => Some("Kaisa"),
            Self::KALISTA                => Some("Kalista"),
            Self::KARMA                  => Some("Karma"),
            Self::KARTHUS                => Some("Karthus"),
            Self::KASSADIN               => Some("Kassadin"),
            Self::KATARINA               => Some("Katarina"),
            Self::KAYLE                  => Some("Kayle"),
            Self::KAYN                   => Some("Kayn"),
            Self::KENNEN                 => Some("Kennen"),
            Self::KHA_ZIX                => Some("Khazix"),
            Self::KINDRED                => Some("Kindred"),
            Self::KLED                   => Some("Kled"),
            Self::KOG_MAW                => Some("KogMaw"),
            Self::LE_BLANC               => Some("Leblanc"),
            Self::LEE_SIN                => Some("LeeSin"),
            Self::LEONA                  => Some("Leona"),
            Self::LILLIA                 => Some("Lillia"),
            Self::LISSANDRA              => Some("Lissandra"),
            Self::LOCKE                  => Some("Locke"),
            Self::LUCIAN                 => Some("Lucian"),
            Self::LULU                   => Some("Lulu"),
            Self::LUX                    => Some("Lux"),
            Self::MALPHITE               => Some("Malphite"),
            Self::MALZAHAR               => Some("Malzahar"),
            Self::MAOKAI                 => Some("Maokai"),
            Self::MASTER_YI              => Some("MasterYi"),
            Self::MEL                    => Some("Mel"),
            Self::MILIO                  => Some("Milio"),
            Self::MISS_FORTUNE           => Some("MissFortune"),
            Self::MORDEKAISER            => Some("Mordekaiser"),
            Self::MORGANA                => Some("Morgana"),
            Self::NAAFIRI                => Some("Naafiri"),
            Self::NAMI                   => Some("Nami"),
            Self::NASUS                  => Some("Nasus"),
            Self::NAUTILUS               => Some("Nautilus"),
            Self::NEEKO                  => Some("Neeko"),
            Self::NIDALEE                => Some("Nidalee"),
            Self::NILAH                  => Some("Nilah"),
            Self::NOCTURNE               => Some("Nocturne"),
            Self::NUNU_WILLUMP           => Some("Nunu"),
            Self::OLAF                   => Some("Olaf"),
            Self::ORIANNA                => Some("Orianna"),
            Self::ORNN                   => Some("Ornn"),
            Self::PANTHEON               => Some("Pantheon"),
            Self::POPPY                  => Some("Poppy"),
            Self::PYKE                   => Some("Pyke"),
            Self::QIYANA                 => Some("Qiyana"),
            Self::QUINN                  => Some("Quinn"),
            Self::RAKAN                  => Some("Rakan"),
            Self::RAMMUS                 => Some("Rammus"),
            Self::REK_SAI                => Some("RekSai"),
            Self::RELL                   => Some("Rell"),
            Self::RENATA_GLASC           => Some("Renata"),
            Self::RENEKTON               => Some("Renekton"),
            Self::RENGAR                 => Some("Rengar"),
            Self::RIVEN                  => Some("Riven"),
            Self::RUMBLE                 => Some("Rumble"),
            Self::RYZE                   => Some("Ryze"),
            Self::SAMIRA                 => Some("Samira"),
            Self::SEJUANI                => Some("Sejuani"),
            Self::SENNA                  => Some("Senna"),
            Self::SERAPHINE              => Some("Seraphine"),
            Self::SETT                   => Some("Sett"),
            Self::SHACO                  => Some("Shaco"),
            Self::SHEN                   => Some("Shen"),
            Self::SHYVANA                => Some("Shyvana"),
            Self::SINGED                 => Some("Singed"),
            Self::SION                   => Some("Sion"),
            Self::SIVIR                  => Some("Sivir"),
            Self::SKARNER                => Some("Skarner"),
            Self::SMOLDER                => Some("Smolder"),
            Self::SONA                   => Some("Sona"),
            Self::SORAKA                 => Some("Soraka"),
            Self::SWAIN                  => Some("Swain"),
            Self::SYLAS                  => Some("Sylas"),
            Self::SYNDRA                 => Some("Syndra"),
            Self::TAHM_KENCH             => Some("TahmKench"),
            Self::TALIYAH                => Some("Taliyah"),
            Self::TALON                  => Some("Talon"),
            Self::TARIC                  => Some("Taric"),
            Self::TEEMO                  => Some("Teemo"),
            Self::THRESH                 => Some("Thresh"),
            Self::TRISTANA               => Some("Tristana"),
            Self::TRUNDLE                => Some("Trundle"),
            Self::TRYNDAMERE             => Some("Tryndamere"),
            Self::TWISTED_FATE           => Some("TwistedFate"),
            Self::TWITCH                 => Some("Twitch"),
            Self::UDYR                   => Some("Udyr"),
            Self::URGOT                  => Some("Urgot"),
            Self::VARUS                  => Some("Varus"),
            Self::VAYNE                  => Some("Vayne"),
            Self::VEIGAR                 => Some("Veigar"),
            Self::VEL_KOZ                => Some("Velkoz"),
            Self::VEX                    => Some("Vex"),
            Self::VI                     => Some("Vi"),
            Self::VIEGO                  => Some("Viego"),
            Self::VIKTOR                 => Some("Viktor"),
            Self::VLADIMIR               => Some("Vladimir"),
            Self::VOLIBEAR               => Some("Volibear"),
            Self::WARWICK                => Some("Warwick"),
            Self::WUKONG                 => Some("MonkeyKing"),
            Self::XAYAH                  => Some("Xayah"),
            Self::XERATH                 => Some("Xerath"),
            Self::XIN_ZHAO               => Some("XinZhao"),
            Self::YASUO                  => Some("Yasuo"),
            Self::YONE                   => Some("Yone"),
            Self::YORICK                 => Some("Yorick"),
            Self::YUNARA                 => Some("Yunara"),
            Self::YUUMI                  => Some("Yuumi"),
            Self::ZAAHEN                 => Some("Zaahen"),
            Self::ZAC                    => Some("Zac"),
            Self::ZED                    => Some("Zed"),
            Self::ZERI                   => Some("Zeri"),
            Self::ZIGGS                  => Some("Ziggs"),
            Self::ZILEAN                 => Some("Zilean"),
            Self::ZOE                    => Some("Zoe"),
            Self::ZYRA                   => Some("Zyra"),
            Self::CLASSIC_AHRI           => Some("Jade_Ahri"),
            Self::CLASSIC_AKALI          => Some("Jade_Akali"),
            Self::CLASSIC_ALISTAR        => Some("Jade_Alistar"),
            Self::CLASSIC_AMUMU          => Some("Jade_Amumu"),
            Self::CLASSIC_ANIVIA         => Some("Jade_Anivia"),
            Self::CLASSIC_ANNIE          => Some("Jade_Annie"),
            Self::CLASSIC_ASHE           => Some("Jade_Ashe"),
            Self::CLASSIC_BLITZCRANK     => Some("Jade_Blitzcrank"),
            Self::CLASSIC_BRAND          => Some("Jade_Brand"),
            Self::CLASSIC_CHO_GATH       => Some("Jade_Chogath"),
            Self::CLASSIC_CORKI          => Some("Jade_Corki"),
            Self::CLASSIC_DR_MUNDO       => Some("Jade_DrMundo"),
            Self::CLASSIC_EVELYNN        => Some("Jade_Evelynn"),
            Self::CLASSIC_EZREAL         => Some("Jade_Ezreal"),
            Self::CLASSIC_FIDDLESTICKS   => Some("Jade_Fiddlesticks"),
            Self::CLASSIC_GANGPLANK      => Some("Jade_Gangplank"),
            Self::CLASSIC_GAREN          => Some("Jade_Garen"),
            Self::CLASSIC_GRAGAS         => Some("Jade_Gragas"),
            Self::CLASSIC_HEIMERDINGER   => Some("Jade_Heimerdinger"),
            Self::CLASSIC_JANNA          => Some("Jade_Janna"),
            Self::CLASSIC_JARVAN_IV      => Some("Jade_JarvanIV"),
            Self::CLASSIC_JAX            => Some("Jade_Jax"),
            Self::CLASSIC_KARTHUS        => Some("Jade_Karthus"),
            Self::CLASSIC_KASSADIN       => Some("Jade_Kassadin"),
            Self::CLASSIC_KATARINA       => Some("Jade_Katarina"),
            Self::CLASSIC_KAYLE          => Some("Jade_Kayle"),
            Self::CLASSIC_KENNEN         => Some("Jade_Kennen"),
            Self::CLASSIC_KOG_MAW        => Some("Jade_KogMaw"),
            Self::CLASSIC_LEE_SIN        => Some("Jade_LeeSin"),
            Self::CLASSIC_LEONA          => Some("Jade_Leona"),
            Self::CLASSIC_LULU           => Some("Jade_Lulu"),
            Self::CLASSIC_LUX            => Some("Jade_Lux"),
            Self::CLASSIC_MALPHITE       => Some("Jade_Malphite"),
            Self::CLASSIC_MALZAHAR       => Some("Jade_Malzahar"),
            Self::CLASSIC_MASTER_YI      => Some("Jade_MasterYi"),
            Self::CLASSIC_MISS_FORTUNE   => Some("Jade_MissFortune"),
            Self::CLASSIC_MORGANA        => Some("Jade_Morgana"),
            Self::CLASSIC_NASUS          => Some("Jade_Nasus"),
            Self::CLASSIC_NIDALEE        => Some("Jade_Nidalee"),
            Self::CLASSIC_NUNU_WILLUMP   => Some("Jade_Nunu"),
            Self::CLASSIC_OLAF           => Some("Jade_Olaf"),
            Self::CLASSIC_PANTHEON       => Some("Jade_Pantheon"),
            Self::CLASSIC_RAMMUS         => Some("Jade_Rammus"),
            Self::CLASSIC_RYZE           => Some("Jade_Ryze"),
            Self::CLASSIC_SHACO          => Some("Jade_Shaco"),
            Self::CLASSIC_SHEN           => Some("Jade_Shen"),
            Self::CLASSIC_SINGED         => Some("Jade_Singed"),
            Self::CLASSIC_SION           => Some("Jade_Sion"),
            Self::CLASSIC_SIVIR          => Some("Jade_Sivir"),
            Self::CLASSIC_SKARNER        => Some("Jade_Skarner"),
            Self::CLASSIC_SONA           => Some("Jade_Sona"),
            Self::CLASSIC_SORAKA         => Some("Jade_Soraka"),
            Self::CLASSIC_TARIC          => Some("Jade_Taric"),
            Self::CLASSIC_TEEMO          => Some("Jade_Teemo"),
            Self::CLASSIC_TRISTANA       => Some("Jade_Tristana"),
            Self::CLASSIC_TRYNDAMERE     => Some("Jade_Tryndamere"),
            Self::CLASSIC_TWISTED_FATE   => Some("Jade_TwistedFate"),
            Self::CLASSIC_TWITCH         => Some("Jade_Twitch"),
            Self::CLASSIC_VAYNE          => Some("Jade_Vayne"),
            Self::CLASSIC_VEIGAR         => Some("Jade_Veigar"),
            Self::CLASSIC_WARWICK        => Some("Jade_Warwick"),
            Self::CLASSIC_WUKONG         => Some("Jade_Wukong"),
            Self::CLASSIC_ZILEAN         => Some("Jade_Zilean"),
            _ => None,
        }
    }

    /// If this is a classic version of a champion.
    ///
    /// * `true` if this is a classic champion.
    /// * `false` if this is a regular (modern) champion, or an unknown champion.
    pub const fn is_classic(self) -> bool {
        match self {
            Self::AATROX                 => false,
            Self::AHRI                   => false,
            Self::AKALI                  => false,
            Self::AKSHAN                 => false,
            Self::ALISTAR                => false,
            Self::AMBESSA                => false,
            Self::AMUMU                  => false,
            Self::ANIVIA                 => false,
            Self::ANNIE                  => false,
            Self::APHELIOS               => false,
            Self::ASHE                   => false,
            Self::AURELION_SOL           => false,
            Self::AURORA                 => false,
            Self::AZIR                   => false,
            Self::BARD                   => false,
            Self::BEL_VETH               => false,
            Self::BLITZCRANK             => false,
            Self::BRAND                  => false,
            Self::BRAUM                  => false,
            Self::BRIAR                  => false,
            Self::CAITLYN                => false,
            Self::CAMILLE                => false,
            Self::CASSIOPEIA             => false,
            Self::CHO_GATH               => false,
            Self::CORKI                  => false,
            Self::DARIUS                 => false,
            Self::DIANA                  => false,
            Self::DR_MUNDO               => false,
            Self::DRAVEN                 => false,
            Self::EKKO                   => false,
            Self::ELISE                  => false,
            Self::EVELYNN                => false,
            Self::EZREAL                 => false,
            Self::FIDDLESTICKS           => false,
            Self::FIORA                  => false,
            Self::FIZZ                   => false,
            Self::GALIO                  => false,
            Self::GANGPLANK              => false,
            Self::GAREN                  => false,
            Self::GNAR                   => false,
            Self::GRAGAS                 => false,
            Self::GRAVES                 => false,
            Self::GWEN                   => false,
            Self::HECARIM                => false,
            Self::HEIMERDINGER           => false,
            Self::HWEI                   => false,
            Self::ILLAOI                 => false,
            Self::IRELIA                 => false,
            Self::IVERN                  => false,
            Self::JANNA                  => false,
            Self::JARVAN_IV              => false,
            Self::JAX                    => false,
            Self::JAYCE                  => false,
            Self::JHIN                   => false,
            Self::JINX                   => false,
            Self::K_SANTE                => false,
            Self::KAI_SA                 => false,
            Self::KALISTA                => false,
            Self::KARMA                  => false,
            Self::KARTHUS                => false,
            Self::KASSADIN               => false,
            Self::KATARINA               => false,
            Self::KAYLE                  => false,
            Self::KAYN                   => false,
            Self::KENNEN                 => false,
            Self::KHA_ZIX                => false,
            Self::KINDRED                => false,
            Self::KLED                   => false,
            Self::KOG_MAW                => false,
            Self::LE_BLANC               => false,
            Self::LEE_SIN                => false,
            Self::LEONA                  => false,
            Self::LILLIA                 => false,
            Self::LISSANDRA              => false,
            Self::LOCKE                  => false,
            Self::LUCIAN                 => false,
            Self::LULU                   => false,
            Self::LUX                    => false,
            Self::MALPHITE               => false,
            Self::MALZAHAR               => false,
            Self::MAOKAI                 => false,
            Self::MASTER_YI              => false,
            Self::MEL                    => false,
            Self::MILIO                  => false,
            Self::MISS_FORTUNE           => false,
            Self::MORDEKAISER            => false,
            Self::MORGANA                => false,
            Self::NAAFIRI                => false,
            Self::NAMI                   => false,
            Self::NASUS                  => false,
            Self::NAUTILUS               => false,
            Self::NEEKO                  => false,
            Self::NIDALEE                => false,
            Self::NILAH                  => false,
            Self::NOCTURNE               => false,
            Self::NUNU_WILLUMP           => false,
            Self::OLAF                   => false,
            Self::ORIANNA                => false,
            Self::ORNN                   => false,
            Self::PANTHEON               => false,
            Self::POPPY                  => false,
            Self::PYKE                   => false,
            Self::QIYANA                 => false,
            Self::QUINN                  => false,
            Self::RAKAN                  => false,
            Self::RAMMUS                 => false,
            Self::REK_SAI                => false,
            Self::RELL                   => false,
            Self::RENATA_GLASC           => false,
            Self::RENEKTON               => false,
            Self::RENGAR                 => false,
            Self::RIVEN                  => false,
            Self::RUMBLE                 => false,
            Self::RYZE                   => false,
            Self::SAMIRA                 => false,
            Self::SEJUANI                => false,
            Self::SENNA                  => false,
            Self::SERAPHINE              => false,
            Self::SETT                   => false,
            Self::SHACO                  => false,
            Self::SHEN                   => false,
            Self::SHYVANA                => false,
            Self::SINGED                 => false,
            Self::SION                   => false,
            Self::SIVIR                  => false,
            Self::SKARNER                => false,
            Self::SMOLDER                => false,
            Self::SONA                   => false,
            Self::SORAKA                 => false,
            Self::SWAIN                  => false,
            Self::SYLAS                  => false,
            Self::SYNDRA                 => false,
            Self::TAHM_KENCH             => false,
            Self::TALIYAH                => false,
            Self::TALON                  => false,
            Self::TARIC                  => false,
            Self::TEEMO                  => false,
            Self::THRESH                 => false,
            Self::TRISTANA               => false,
            Self::TRUNDLE                => false,
            Self::TRYNDAMERE             => false,
            Self::TWISTED_FATE           => false,
            Self::TWITCH                 => false,
            Self::UDYR                   => false,
            Self::URGOT                  => false,
            Self::VARUS                  => false,
            Self::VAYNE                  => false,
            Self::VEIGAR                 => false,
            Self::VEL_KOZ                => false,
            Self::VEX                    => false,
            Self::VI                     => false,
            Self::VIEGO                  => false,
            Self::VIKTOR                 => false,
            Self::VLADIMIR               => false,
            Self::VOLIBEAR               => false,
            Self::WARWICK                => false,
            Self::WUKONG                 => false,
            Self::XAYAH                  => false,
            Self::XERATH                 => false,
            Self::XIN_ZHAO               => false,
            Self::YASUO                  => false,
            Self::YONE                   => false,
            Self::YORICK                 => false,
            Self::YUNARA                 => false,
            Self::YUUMI                  => false,
            Self::ZAAHEN                 => false,
            Self::ZAC                    => false,
            Self::ZED                    => false,
            Self::ZERI                   => false,
            Self::ZIGGS                  => false,
            Self::ZILEAN                 => false,
            Self::ZOE                    => false,
            Self::ZYRA                   => false,
            Self::CLASSIC_AHRI           => true,
            Self::CLASSIC_AKALI          => true,
            Self::CLASSIC_ALISTAR        => true,
            Self::CLASSIC_AMUMU          => true,
            Self::CLASSIC_ANIVIA         => true,
            Self::CLASSIC_ANNIE          => true,
            Self::CLASSIC_ASHE           => true,
            Self::CLASSIC_BLITZCRANK     => true,
            Self::CLASSIC_BRAND          => true,
            Self::CLASSIC_CHO_GATH       => true,
            Self::CLASSIC_CORKI          => true,
            Self::CLASSIC_DR_MUNDO       => true,
            Self::CLASSIC_EVELYNN        => true,
            Self::CLASSIC_EZREAL         => true,
            Self::CLASSIC_FIDDLESTICKS   => true,
            Self::CLASSIC_GANGPLANK      => true,
            Self::CLASSIC_GAREN          => true,
            Self::CLASSIC_GRAGAS         => true,
            Self::CLASSIC_HEIMERDINGER   => true,
            Self::CLASSIC_JANNA          => true,
            Self::CLASSIC_JARVAN_IV      => true,
            Self::CLASSIC_JAX            => true,
            Self::CLASSIC_KARTHUS        => true,
            Self::CLASSIC_KASSADIN       => true,
            Self::CLASSIC_KATARINA       => true,
            Self::CLASSIC_KAYLE          => true,
            Self::CLASSIC_KENNEN         => true,
            Self::CLASSIC_KOG_MAW        => true,
            Self::CLASSIC_LEE_SIN        => true,
            Self::CLASSIC_LEONA          => true,
            Self::CLASSIC_LULU           => true,
            Self::CLASSIC_LUX            => true,
            Self::CLASSIC_MALPHITE       => true,
            Self::CLASSIC_MALZAHAR       => true,
            Self::CLASSIC_MASTER_YI      => true,
            Self::CLASSIC_MISS_FORTUNE   => true,
            Self::CLASSIC_MORGANA        => true,
            Self::CLASSIC_NASUS          => true,
            Self::CLASSIC_NIDALEE        => true,
            Self::CLASSIC_NUNU_WILLUMP   => true,
            Self::CLASSIC_OLAF           => true,
            Self::CLASSIC_PANTHEON       => true,
            Self::CLASSIC_RAMMUS         => true,
            Self::CLASSIC_RYZE           => true,
            Self::CLASSIC_SHACO          => true,
            Self::CLASSIC_SHEN           => true,
            Self::CLASSIC_SINGED         => true,
            Self::CLASSIC_SION           => true,
            Self::CLASSIC_SIVIR          => true,
            Self::CLASSIC_SKARNER        => true,
            Self::CLASSIC_SONA           => true,
            Self::CLASSIC_SORAKA         => true,
            Self::CLASSIC_TARIC          => true,
            Self::CLASSIC_TEEMO          => true,
            Self::CLASSIC_TRISTANA       => true,
            Self::CLASSIC_TRYNDAMERE     => true,
            Self::CLASSIC_TWISTED_FATE   => true,
            Self::CLASSIC_TWITCH         => true,
            Self::CLASSIC_VAYNE          => true,
            Self::CLASSIC_VEIGAR         => true,
            Self::CLASSIC_WARWICK        => true,
            Self::CLASSIC_WUKONG         => true,
            Self::CLASSIC_ZILEAN         => true,
            _ => false,
        }
    }

    /// Converts any classic versions of a champion to their regular variant.
    ///
    /// Returns self unchanged for regular champions.
    pub const fn from_classic(self) -> Self {
        match self {
            Self::AATROX                 => Self::AATROX,
            Self::AHRI                   => Self::AHRI,
            Self::AKALI                  => Self::AKALI,
            Self::AKSHAN                 => Self::AKSHAN,
            Self::ALISTAR                => Self::ALISTAR,
            Self::AMBESSA                => Self::AMBESSA,
            Self::AMUMU                  => Self::AMUMU,
            Self::ANIVIA                 => Self::ANIVIA,
            Self::ANNIE                  => Self::ANNIE,
            Self::APHELIOS               => Self::APHELIOS,
            Self::ASHE                   => Self::ASHE,
            Self::AURELION_SOL           => Self::AURELION_SOL,
            Self::AURORA                 => Self::AURORA,
            Self::AZIR                   => Self::AZIR,
            Self::BARD                   => Self::BARD,
            Self::BEL_VETH               => Self::BEL_VETH,
            Self::BLITZCRANK             => Self::BLITZCRANK,
            Self::BRAND                  => Self::BRAND,
            Self::BRAUM                  => Self::BRAUM,
            Self::BRIAR                  => Self::BRIAR,
            Self::CAITLYN                => Self::CAITLYN,
            Self::CAMILLE                => Self::CAMILLE,
            Self::CASSIOPEIA             => Self::CASSIOPEIA,
            Self::CHO_GATH               => Self::CHO_GATH,
            Self::CORKI                  => Self::CORKI,
            Self::DARIUS                 => Self::DARIUS,
            Self::DIANA                  => Self::DIANA,
            Self::DR_MUNDO               => Self::DR_MUNDO,
            Self::DRAVEN                 => Self::DRAVEN,
            Self::EKKO                   => Self::EKKO,
            Self::ELISE                  => Self::ELISE,
            Self::EVELYNN                => Self::EVELYNN,
            Self::EZREAL                 => Self::EZREAL,
            Self::FIDDLESTICKS           => Self::FIDDLESTICKS,
            Self::FIORA                  => Self::FIORA,
            Self::FIZZ                   => Self::FIZZ,
            Self::GALIO                  => Self::GALIO,
            Self::GANGPLANK              => Self::GANGPLANK,
            Self::GAREN                  => Self::GAREN,
            Self::GNAR                   => Self::GNAR,
            Self::GRAGAS                 => Self::GRAGAS,
            Self::GRAVES                 => Self::GRAVES,
            Self::GWEN                   => Self::GWEN,
            Self::HECARIM                => Self::HECARIM,
            Self::HEIMERDINGER           => Self::HEIMERDINGER,
            Self::HWEI                   => Self::HWEI,
            Self::ILLAOI                 => Self::ILLAOI,
            Self::IRELIA                 => Self::IRELIA,
            Self::IVERN                  => Self::IVERN,
            Self::JANNA                  => Self::JANNA,
            Self::JARVAN_IV              => Self::JARVAN_IV,
            Self::JAX                    => Self::JAX,
            Self::JAYCE                  => Self::JAYCE,
            Self::JHIN                   => Self::JHIN,
            Self::JINX                   => Self::JINX,
            Self::K_SANTE                => Self::K_SANTE,
            Self::KAI_SA                 => Self::KAI_SA,
            Self::KALISTA                => Self::KALISTA,
            Self::KARMA                  => Self::KARMA,
            Self::KARTHUS                => Self::KARTHUS,
            Self::KASSADIN               => Self::KASSADIN,
            Self::KATARINA               => Self::KATARINA,
            Self::KAYLE                  => Self::KAYLE,
            Self::KAYN                   => Self::KAYN,
            Self::KENNEN                 => Self::KENNEN,
            Self::KHA_ZIX                => Self::KHA_ZIX,
            Self::KINDRED                => Self::KINDRED,
            Self::KLED                   => Self::KLED,
            Self::KOG_MAW                => Self::KOG_MAW,
            Self::LE_BLANC               => Self::LE_BLANC,
            Self::LEE_SIN                => Self::LEE_SIN,
            Self::LEONA                  => Self::LEONA,
            Self::LILLIA                 => Self::LILLIA,
            Self::LISSANDRA              => Self::LISSANDRA,
            Self::LOCKE                  => Self::LOCKE,
            Self::LUCIAN                 => Self::LUCIAN,
            Self::LULU                   => Self::LULU,
            Self::LUX                    => Self::LUX,
            Self::MALPHITE               => Self::MALPHITE,
            Self::MALZAHAR               => Self::MALZAHAR,
            Self::MAOKAI                 => Self::MAOKAI,
            Self::MASTER_YI              => Self::MASTER_YI,
            Self::MEL                    => Self::MEL,
            Self::MILIO                  => Self::MILIO,
            Self::MISS_FORTUNE           => Self::MISS_FORTUNE,
            Self::MORDEKAISER            => Self::MORDEKAISER,
            Self::MORGANA                => Self::MORGANA,
            Self::NAAFIRI                => Self::NAAFIRI,
            Self::NAMI                   => Self::NAMI,
            Self::NASUS                  => Self::NASUS,
            Self::NAUTILUS               => Self::NAUTILUS,
            Self::NEEKO                  => Self::NEEKO,
            Self::NIDALEE                => Self::NIDALEE,
            Self::NILAH                  => Self::NILAH,
            Self::NOCTURNE               => Self::NOCTURNE,
            Self::NUNU_WILLUMP           => Self::NUNU_WILLUMP,
            Self::OLAF                   => Self::OLAF,
            Self::ORIANNA                => Self::ORIANNA,
            Self::ORNN                   => Self::ORNN,
            Self::PANTHEON               => Self::PANTHEON,
            Self::POPPY                  => Self::POPPY,
            Self::PYKE                   => Self::PYKE,
            Self::QIYANA                 => Self::QIYANA,
            Self::QUINN                  => Self::QUINN,
            Self::RAKAN                  => Self::RAKAN,
            Self::RAMMUS                 => Self::RAMMUS,
            Self::REK_SAI                => Self::REK_SAI,
            Self::RELL                   => Self::RELL,
            Self::RENATA_GLASC           => Self::RENATA_GLASC,
            Self::RENEKTON               => Self::RENEKTON,
            Self::RENGAR                 => Self::RENGAR,
            Self::RIVEN                  => Self::RIVEN,
            Self::RUMBLE                 => Self::RUMBLE,
            Self::RYZE                   => Self::RYZE,
            Self::SAMIRA                 => Self::SAMIRA,
            Self::SEJUANI                => Self::SEJUANI,
            Self::SENNA                  => Self::SENNA,
            Self::SERAPHINE              => Self::SERAPHINE,
            Self::SETT                   => Self::SETT,
            Self::SHACO                  => Self::SHACO,
            Self::SHEN                   => Self::SHEN,
            Self::SHYVANA                => Self::SHYVANA,
            Self::SINGED                 => Self::SINGED,
            Self::SION                   => Self::SION,
            Self::SIVIR                  => Self::SIVIR,
            Self::SKARNER                => Self::SKARNER,
            Self::SMOLDER                => Self::SMOLDER,
            Self::SONA                   => Self::SONA,
            Self::SORAKA                 => Self::SORAKA,
            Self::SWAIN                  => Self::SWAIN,
            Self::SYLAS                  => Self::SYLAS,
            Self::SYNDRA                 => Self::SYNDRA,
            Self::TAHM_KENCH             => Self::TAHM_KENCH,
            Self::TALIYAH                => Self::TALIYAH,
            Self::TALON                  => Self::TALON,
            Self::TARIC                  => Self::TARIC,
            Self::TEEMO                  => Self::TEEMO,
            Self::THRESH                 => Self::THRESH,
            Self::TRISTANA               => Self::TRISTANA,
            Self::TRUNDLE                => Self::TRUNDLE,
            Self::TRYNDAMERE             => Self::TRYNDAMERE,
            Self::TWISTED_FATE           => Self::TWISTED_FATE,
            Self::TWITCH                 => Self::TWITCH,
            Self::UDYR                   => Self::UDYR,
            Self::URGOT                  => Self::URGOT,
            Self::VARUS                  => Self::VARUS,
            Self::VAYNE                  => Self::VAYNE,
            Self::VEIGAR                 => Self::VEIGAR,
            Self::VEL_KOZ                => Self::VEL_KOZ,
            Self::VEX                    => Self::VEX,
            Self::VI                     => Self::VI,
            Self::VIEGO                  => Self::VIEGO,
            Self::VIKTOR                 => Self::VIKTOR,
            Self::VLADIMIR               => Self::VLADIMIR,
            Self::VOLIBEAR               => Self::VOLIBEAR,
            Self::WARWICK                => Self::WARWICK,
            Self::WUKONG                 => Self::WUKONG,
            Self::XAYAH                  => Self::XAYAH,
            Self::XERATH                 => Self::XERATH,
            Self::XIN_ZHAO               => Self::XIN_ZHAO,
            Self::YASUO                  => Self::YASUO,
            Self::YONE                   => Self::YONE,
            Self::YORICK                 => Self::YORICK,
            Self::YUNARA                 => Self::YUNARA,
            Self::YUUMI                  => Self::YUUMI,
            Self::ZAAHEN                 => Self::ZAAHEN,
            Self::ZAC                    => Self::ZAC,
            Self::ZED                    => Self::ZED,
            Self::ZERI                   => Self::ZERI,
            Self::ZIGGS                  => Self::ZIGGS,
            Self::ZILEAN                 => Self::ZILEAN,
            Self::ZOE                    => Self::ZOE,
            Self::ZYRA                   => Self::ZYRA,
            Self::CLASSIC_AHRI           => Self::AHRI,
            Self::CLASSIC_AKALI          => Self::AKALI,
            Self::CLASSIC_ALISTAR        => Self::ALISTAR,
            Self::CLASSIC_AMUMU          => Self::AMUMU,
            Self::CLASSIC_ANIVIA         => Self::ANIVIA,
            Self::CLASSIC_ANNIE          => Self::ANNIE,
            Self::CLASSIC_ASHE           => Self::ASHE,
            Self::CLASSIC_BLITZCRANK     => Self::BLITZCRANK,
            Self::CLASSIC_BRAND          => Self::BRAND,
            Self::CLASSIC_CHO_GATH       => Self::CHO_GATH,
            Self::CLASSIC_CORKI          => Self::CORKI,
            Self::CLASSIC_DR_MUNDO       => Self::DR_MUNDO,
            Self::CLASSIC_EVELYNN        => Self::EVELYNN,
            Self::CLASSIC_EZREAL         => Self::EZREAL,
            Self::CLASSIC_FIDDLESTICKS   => Self::FIDDLESTICKS,
            Self::CLASSIC_GANGPLANK      => Self::GANGPLANK,
            Self::CLASSIC_GAREN          => Self::GAREN,
            Self::CLASSIC_GRAGAS         => Self::GRAGAS,
            Self::CLASSIC_HEIMERDINGER   => Self::HEIMERDINGER,
            Self::CLASSIC_JANNA          => Self::JANNA,
            Self::CLASSIC_JARVAN_IV      => Self::JARVAN_IV,
            Self::CLASSIC_JAX            => Self::JAX,
            Self::CLASSIC_KARTHUS        => Self::KARTHUS,
            Self::CLASSIC_KASSADIN       => Self::KASSADIN,
            Self::CLASSIC_KATARINA       => Self::KATARINA,
            Self::CLASSIC_KAYLE          => Self::KAYLE,
            Self::CLASSIC_KENNEN         => Self::KENNEN,
            Self::CLASSIC_KOG_MAW        => Self::KOG_MAW,
            Self::CLASSIC_LEE_SIN        => Self::LEE_SIN,
            Self::CLASSIC_LEONA          => Self::LEONA,
            Self::CLASSIC_LULU           => Self::LULU,
            Self::CLASSIC_LUX            => Self::LUX,
            Self::CLASSIC_MALPHITE       => Self::MALPHITE,
            Self::CLASSIC_MALZAHAR       => Self::MALZAHAR,
            Self::CLASSIC_MASTER_YI      => Self::MASTER_YI,
            Self::CLASSIC_MISS_FORTUNE   => Self::MISS_FORTUNE,
            Self::CLASSIC_MORGANA        => Self::MORGANA,
            Self::CLASSIC_NASUS          => Self::NASUS,
            Self::CLASSIC_NIDALEE        => Self::NIDALEE,
            Self::CLASSIC_NUNU_WILLUMP   => Self::NUNU_WILLUMP,
            Self::CLASSIC_OLAF           => Self::OLAF,
            Self::CLASSIC_PANTHEON       => Self::PANTHEON,
            Self::CLASSIC_RAMMUS         => Self::RAMMUS,
            Self::CLASSIC_RYZE           => Self::RYZE,
            Self::CLASSIC_SHACO          => Self::SHACO,
            Self::CLASSIC_SHEN           => Self::SHEN,
            Self::CLASSIC_SINGED         => Self::SINGED,
            Self::CLASSIC_SION           => Self::SION,
            Self::CLASSIC_SIVIR          => Self::SIVIR,
            Self::CLASSIC_SKARNER        => Self::SKARNER,
            Self::CLASSIC_SONA           => Self::SONA,
            Self::CLASSIC_SORAKA         => Self::SORAKA,
            Self::CLASSIC_TARIC          => Self::TARIC,
            Self::CLASSIC_TEEMO          => Self::TEEMO,
            Self::CLASSIC_TRISTANA       => Self::TRISTANA,
            Self::CLASSIC_TRYNDAMERE     => Self::TRYNDAMERE,
            Self::CLASSIC_TWISTED_FATE   => Self::TWISTED_FATE,
            Self::CLASSIC_TWITCH         => Self::TWITCH,
            Self::CLASSIC_VAYNE          => Self::VAYNE,
            Self::CLASSIC_VEIGAR         => Self::VEIGAR,
            Self::CLASSIC_WARWICK        => Self::WARWICK,
            Self::CLASSIC_WUKONG         => Self::WUKONG,
            Self::CLASSIC_ZILEAN         => Self::ZILEAN,
            other => other,
        }
    }

    /// Converts a regular champion to its classic variant, if possible.
    ///
    /// * `Some(classic)` for champions that are classic or have a classic variant.
    /// * `None` for champions that have no classic variant, and for unknown champions.
    pub const fn to_classic(self) -> Option<Self> {
        match self {
            Self::AATROX                 => None,
            Self::AHRI                   => Some(Self::AHRI),
            Self::AKALI                  => Some(Self::AKALI),
            Self::AKSHAN                 => None,
            Self::ALISTAR                => Some(Self::ALISTAR),
            Self::AMBESSA                => None,
            Self::AMUMU                  => Some(Self::AMUMU),
            Self::ANIVIA                 => Some(Self::ANIVIA),
            Self::ANNIE                  => Some(Self::ANNIE),
            Self::APHELIOS               => None,
            Self::ASHE                   => Some(Self::ASHE),
            Self::AURELION_SOL           => None,
            Self::AURORA                 => None,
            Self::AZIR                   => None,
            Self::BARD                   => None,
            Self::BEL_VETH               => None,
            Self::BLITZCRANK             => Some(Self::BLITZCRANK),
            Self::BRAND                  => Some(Self::BRAND),
            Self::BRAUM                  => None,
            Self::BRIAR                  => None,
            Self::CAITLYN                => None,
            Self::CAMILLE                => None,
            Self::CASSIOPEIA             => None,
            Self::CHO_GATH               => Some(Self::CHO_GATH),
            Self::CORKI                  => Some(Self::CORKI),
            Self::DARIUS                 => None,
            Self::DIANA                  => None,
            Self::DR_MUNDO               => Some(Self::DR_MUNDO),
            Self::DRAVEN                 => None,
            Self::EKKO                   => None,
            Self::ELISE                  => None,
            Self::EVELYNN                => Some(Self::EVELYNN),
            Self::EZREAL                 => Some(Self::EZREAL),
            Self::FIDDLESTICKS           => Some(Self::FIDDLESTICKS),
            Self::FIORA                  => None,
            Self::FIZZ                   => None,
            Self::GALIO                  => None,
            Self::GANGPLANK              => Some(Self::GANGPLANK),
            Self::GAREN                  => Some(Self::GAREN),
            Self::GNAR                   => None,
            Self::GRAGAS                 => Some(Self::GRAGAS),
            Self::GRAVES                 => None,
            Self::GWEN                   => None,
            Self::HECARIM                => None,
            Self::HEIMERDINGER           => Some(Self::HEIMERDINGER),
            Self::HWEI                   => None,
            Self::ILLAOI                 => None,
            Self::IRELIA                 => None,
            Self::IVERN                  => None,
            Self::JANNA                  => Some(Self::JANNA),
            Self::JARVAN_IV              => Some(Self::JARVAN_IV),
            Self::JAX                    => Some(Self::JAX),
            Self::JAYCE                  => None,
            Self::JHIN                   => None,
            Self::JINX                   => None,
            Self::K_SANTE                => None,
            Self::KAI_SA                 => None,
            Self::KALISTA                => None,
            Self::KARMA                  => None,
            Self::KARTHUS                => Some(Self::KARTHUS),
            Self::KASSADIN               => Some(Self::KASSADIN),
            Self::KATARINA               => Some(Self::KATARINA),
            Self::KAYLE                  => Some(Self::KAYLE),
            Self::KAYN                   => None,
            Self::KENNEN                 => Some(Self::KENNEN),
            Self::KHA_ZIX                => None,
            Self::KINDRED                => None,
            Self::KLED                   => None,
            Self::KOG_MAW                => Some(Self::KOG_MAW),
            Self::LE_BLANC               => None,
            Self::LEE_SIN                => Some(Self::LEE_SIN),
            Self::LEONA                  => Some(Self::LEONA),
            Self::LILLIA                 => None,
            Self::LISSANDRA              => None,
            Self::LOCKE                  => None,
            Self::LUCIAN                 => None,
            Self::LULU                   => Some(Self::LULU),
            Self::LUX                    => Some(Self::LUX),
            Self::MALPHITE               => Some(Self::MALPHITE),
            Self::MALZAHAR               => Some(Self::MALZAHAR),
            Self::MAOKAI                 => None,
            Self::MASTER_YI              => Some(Self::MASTER_YI),
            Self::MEL                    => None,
            Self::MILIO                  => None,
            Self::MISS_FORTUNE           => Some(Self::MISS_FORTUNE),
            Self::MORDEKAISER            => None,
            Self::MORGANA                => Some(Self::MORGANA),
            Self::NAAFIRI                => None,
            Self::NAMI                   => None,
            Self::NASUS                  => Some(Self::NASUS),
            Self::NAUTILUS               => None,
            Self::NEEKO                  => None,
            Self::NIDALEE                => Some(Self::NIDALEE),
            Self::NILAH                  => None,
            Self::NOCTURNE               => None,
            Self::NUNU_WILLUMP           => Some(Self::NUNU_WILLUMP),
            Self::OLAF                   => Some(Self::OLAF),
            Self::ORIANNA                => None,
            Self::ORNN                   => None,
            Self::PANTHEON               => Some(Self::PANTHEON),
            Self::POPPY                  => None,
            Self::PYKE                   => None,
            Self::QIYANA                 => None,
            Self::QUINN                  => None,
            Self::RAKAN                  => None,
            Self::RAMMUS                 => Some(Self::RAMMUS),
            Self::REK_SAI                => None,
            Self::RELL                   => None,
            Self::RENATA_GLASC           => None,
            Self::RENEKTON               => None,
            Self::RENGAR                 => None,
            Self::RIVEN                  => None,
            Self::RUMBLE                 => None,
            Self::RYZE                   => Some(Self::RYZE),
            Self::SAMIRA                 => None,
            Self::SEJUANI                => None,
            Self::SENNA                  => None,
            Self::SERAPHINE              => None,
            Self::SETT                   => None,
            Self::SHACO                  => Some(Self::SHACO),
            Self::SHEN                   => Some(Self::SHEN),
            Self::SHYVANA                => None,
            Self::SINGED                 => Some(Self::SINGED),
            Self::SION                   => Some(Self::SION),
            Self::SIVIR                  => Some(Self::SIVIR),
            Self::SKARNER                => Some(Self::SKARNER),
            Self::SMOLDER                => None,
            Self::SONA                   => Some(Self::SONA),
            Self::SORAKA                 => Some(Self::SORAKA),
            Self::SWAIN                  => None,
            Self::SYLAS                  => None,
            Self::SYNDRA                 => None,
            Self::TAHM_KENCH             => None,
            Self::TALIYAH                => None,
            Self::TALON                  => None,
            Self::TARIC                  => Some(Self::TARIC),
            Self::TEEMO                  => Some(Self::TEEMO),
            Self::THRESH                 => None,
            Self::TRISTANA               => Some(Self::TRISTANA),
            Self::TRUNDLE                => None,
            Self::TRYNDAMERE             => Some(Self::TRYNDAMERE),
            Self::TWISTED_FATE           => Some(Self::TWISTED_FATE),
            Self::TWITCH                 => Some(Self::TWITCH),
            Self::UDYR                   => None,
            Self::URGOT                  => None,
            Self::VARUS                  => None,
            Self::VAYNE                  => Some(Self::VAYNE),
            Self::VEIGAR                 => Some(Self::VEIGAR),
            Self::VEL_KOZ                => None,
            Self::VEX                    => None,
            Self::VI                     => None,
            Self::VIEGO                  => None,
            Self::VIKTOR                 => None,
            Self::VLADIMIR               => None,
            Self::VOLIBEAR               => None,
            Self::WARWICK                => Some(Self::WARWICK),
            Self::WUKONG                 => Some(Self::WUKONG),
            Self::XAYAH                  => None,
            Self::XERATH                 => None,
            Self::XIN_ZHAO               => None,
            Self::YASUO                  => None,
            Self::YONE                   => None,
            Self::YORICK                 => None,
            Self::YUNARA                 => None,
            Self::YUUMI                  => None,
            Self::ZAAHEN                 => None,
            Self::ZAC                    => None,
            Self::ZED                    => None,
            Self::ZERI                   => None,
            Self::ZIGGS                  => None,
            Self::ZILEAN                 => Some(Self::ZILEAN),
            Self::ZOE                    => None,
            Self::ZYRA                   => None,
            Self::CLASSIC_AHRI           => Some(Self::AHRI),
            Self::CLASSIC_AKALI          => Some(Self::AKALI),
            Self::CLASSIC_ALISTAR        => Some(Self::ALISTAR),
            Self::CLASSIC_AMUMU          => Some(Self::AMUMU),
            Self::CLASSIC_ANIVIA         => Some(Self::ANIVIA),
            Self::CLASSIC_ANNIE          => Some(Self::ANNIE),
            Self::CLASSIC_ASHE           => Some(Self::ASHE),
            Self::CLASSIC_BLITZCRANK     => Some(Self::BLITZCRANK),
            Self::CLASSIC_BRAND          => Some(Self::BRAND),
            Self::CLASSIC_CHO_GATH       => Some(Self::CHO_GATH),
            Self::CLASSIC_CORKI          => Some(Self::CORKI),
            Self::CLASSIC_DR_MUNDO       => Some(Self::DR_MUNDO),
            Self::CLASSIC_EVELYNN        => Some(Self::EVELYNN),
            Self::CLASSIC_EZREAL         => Some(Self::EZREAL),
            Self::CLASSIC_FIDDLESTICKS   => Some(Self::FIDDLESTICKS),
            Self::CLASSIC_GANGPLANK      => Some(Self::GANGPLANK),
            Self::CLASSIC_GAREN          => Some(Self::GAREN),
            Self::CLASSIC_GRAGAS         => Some(Self::GRAGAS),
            Self::CLASSIC_HEIMERDINGER   => Some(Self::HEIMERDINGER),
            Self::CLASSIC_JANNA          => Some(Self::JANNA),
            Self::CLASSIC_JARVAN_IV      => Some(Self::JARVAN_IV),
            Self::CLASSIC_JAX            => Some(Self::JAX),
            Self::CLASSIC_KARTHUS        => Some(Self::KARTHUS),
            Self::CLASSIC_KASSADIN       => Some(Self::KASSADIN),
            Self::CLASSIC_KATARINA       => Some(Self::KATARINA),
            Self::CLASSIC_KAYLE          => Some(Self::KAYLE),
            Self::CLASSIC_KENNEN         => Some(Self::KENNEN),
            Self::CLASSIC_KOG_MAW        => Some(Self::KOG_MAW),
            Self::CLASSIC_LEE_SIN        => Some(Self::LEE_SIN),
            Self::CLASSIC_LEONA          => Some(Self::LEONA),
            Self::CLASSIC_LULU           => Some(Self::LULU),
            Self::CLASSIC_LUX            => Some(Self::LUX),
            Self::CLASSIC_MALPHITE       => Some(Self::MALPHITE),
            Self::CLASSIC_MALZAHAR       => Some(Self::MALZAHAR),
            Self::CLASSIC_MASTER_YI      => Some(Self::MASTER_YI),
            Self::CLASSIC_MISS_FORTUNE   => Some(Self::MISS_FORTUNE),
            Self::CLASSIC_MORGANA        => Some(Self::MORGANA),
            Self::CLASSIC_NASUS          => Some(Self::NASUS),
            Self::CLASSIC_NIDALEE        => Some(Self::NIDALEE),
            Self::CLASSIC_NUNU_WILLUMP   => Some(Self::NUNU_WILLUMP),
            Self::CLASSIC_OLAF           => Some(Self::OLAF),
            Self::CLASSIC_PANTHEON       => Some(Self::PANTHEON),
            Self::CLASSIC_RAMMUS         => Some(Self::RAMMUS),
            Self::CLASSIC_RYZE           => Some(Self::RYZE),
            Self::CLASSIC_SHACO          => Some(Self::SHACO),
            Self::CLASSIC_SHEN           => Some(Self::SHEN),
            Self::CLASSIC_SINGED         => Some(Self::SINGED),
            Self::CLASSIC_SION           => Some(Self::SION),
            Self::CLASSIC_SIVIR          => Some(Self::SIVIR),
            Self::CLASSIC_SKARNER        => Some(Self::SKARNER),
            Self::CLASSIC_SONA           => Some(Self::SONA),
            Self::CLASSIC_SORAKA         => Some(Self::SORAKA),
            Self::CLASSIC_TARIC          => Some(Self::TARIC),
            Self::CLASSIC_TEEMO          => Some(Self::TEEMO),
            Self::CLASSIC_TRISTANA       => Some(Self::TRISTANA),
            Self::CLASSIC_TRYNDAMERE     => Some(Self::TRYNDAMERE),
            Self::CLASSIC_TWISTED_FATE   => Some(Self::TWISTED_FATE),
            Self::CLASSIC_TWITCH         => Some(Self::TWITCH),
            Self::CLASSIC_VAYNE          => Some(Self::VAYNE),
            Self::CLASSIC_VEIGAR         => Some(Self::VEIGAR),
            Self::CLASSIC_WARWICK        => Some(Self::WARWICK),
            Self::CLASSIC_WUKONG         => Some(Self::WUKONG),
            Self::CLASSIC_ZILEAN         => Some(Self::ZILEAN),
            _ => None,
        }
    }
}

/// The error used for failures in [`Champion`]'s
/// [`FromStr`](std::str::FromStr) implementation.
///
/// Currently only internally stores the four characters used to parse the
/// champion, but may change in the future.
#[derive(Debug)]
pub struct ParseChampionError([char; 4]);
impl std::fmt::Display for ParseChampionError {
    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
        let s: String = self.0.iter().copied().take_while(|&c| '\0' != c).collect();
        write!(f, "Failed to parse unknown champion prefix: {:?}", s)
    }
}
impl std::error::Error for ParseChampionError {}

impl std::str::FromStr for Champion {
    type Err = ParseChampionError;
    fn from_str(s: &str) -> Result<Self, Self::Err> {
        let mut chars = ['\0'; 4];
        s.chars()
            .take(4)
            .filter(|c| c.is_ascii_alphanumeric())
            .map(|c| c.to_ascii_uppercase())
            .enumerate()
            .for_each(|(i, c)| chars[i] = c);
        match chars {
            /* AATR */ [ 'A',  'A',  'T',  'R'] => Ok(Champion::AATROX),
            /* AHRI */ [ 'A',  'H',  'R',  'I'] => Ok(Champion::AHRI),
            /* AKAL */ [ 'A',  'K',  'A',  'L'] => Ok(Champion::AKALI),
            /* AKSH */ [ 'A',  'K',  'S',  'H'] => Ok(Champion::AKSHAN),
            /* ALIS */ [ 'A',  'L',  'I',  'S'] => Ok(Champion::ALISTAR),
            /* AMBE */ [ 'A',  'M',  'B',  'E'] => Ok(Champion::AMBESSA),
            /* AMUM */ [ 'A',  'M',  'U',  'M'] => Ok(Champion::AMUMU),
            /* ANIV */ [ 'A',  'N',  'I',  'V'] => Ok(Champion::ANIVIA),
            /* ANNI */ [ 'A',  'N',  'N',  'I'] => Ok(Champion::ANNIE),
            /* APHE */ [ 'A',  'P',  'H',  'E'] => Ok(Champion::APHELIOS),
            /* ASHE */ [ 'A',  'S',  'H',  'E'] => Ok(Champion::ASHE),
            /* AURE */ [ 'A',  'U',  'R',  'E'] => Ok(Champion::AURELION_SOL),
            /* AURO */ [ 'A',  'U',  'R',  'O'] => Ok(Champion::AURORA),
            /* AZIR */ [ 'A',  'Z',  'I',  'R'] => Ok(Champion::AZIR),
            /* BARD */ [ 'B',  'A',  'R',  'D'] => Ok(Champion::BARD),
            /* BELV */ [ 'B',  'E',  'L',  'V'] => Ok(Champion::BEL_VETH),
            /* BEL  */ [ 'B',  'E',  'L', '\0'] => Ok(Champion::BEL_VETH),
            /* BLIT */ [ 'B',  'L',  'I',  'T'] => Ok(Champion::BLITZCRANK),
            /* BRAN */ [ 'B',  'R',  'A',  'N'] => Ok(Champion::BRAND),
            /* BRAU */ [ 'B',  'R',  'A',  'U'] => Ok(Champion::BRAUM),
            /* BRIA */ [ 'B',  'R',  'I',  'A'] => Ok(Champion::BRIAR),
            /* CAIT */ [ 'C',  'A',  'I',  'T'] => Ok(Champion::CAITLYN),
            /* CAMI */ [ 'C',  'A',  'M',  'I'] => Ok(Champion::CAMILLE),
            /* CASS */ [ 'C',  'A',  'S',  'S'] => Ok(Champion::CASSIOPEIA),
            /* CHOG */ [ 'C',  'H',  'O',  'G'] => Ok(Champion::CHO_GATH),
            /* CHO  */ [ 'C',  'H',  'O', '\0'] => Ok(Champion::CHO_GATH),
            /* CORK */ [ 'C',  'O',  'R',  'K'] => Ok(Champion::CORKI),
            /* DARI */ [ 'D',  'A',  'R',  'I'] => Ok(Champion::DARIUS),
            /* DIAN */ [ 'D',  'I',  'A',  'N'] => Ok(Champion::DIANA),
            /* DRMU */ [ 'D',  'R',  'M',  'U'] => Ok(Champion::DR_MUNDO),
            /* DR   */ [ 'D',  'R', '\0', '\0'] => Ok(Champion::DR_MUNDO),
            /* DRAV */ [ 'D',  'R',  'A',  'V'] => Ok(Champion::DRAVEN),
            /* EKKO */ [ 'E',  'K',  'K',  'O'] => Ok(Champion::EKKO),
            /* ELIS */ [ 'E',  'L',  'I',  'S'] => Ok(Champion::ELISE),
            /* EVEL */ [ 'E',  'V',  'E',  'L'] => Ok(Champion::EVELYNN),
            /* EZRE */ [ 'E',  'Z',  'R',  'E'] => Ok(Champion::EZREAL),
            /* FIDD */ [ 'F',  'I',  'D',  'D'] => Ok(Champion::FIDDLESTICKS),
            /* FIOR */ [ 'F',  'I',  'O',  'R'] => Ok(Champion::FIORA),
            /* FIZZ */ [ 'F',  'I',  'Z',  'Z'] => Ok(Champion::FIZZ),
            /* GALI */ [ 'G',  'A',  'L',  'I'] => Ok(Champion::GALIO),
            /* GANG */ [ 'G',  'A',  'N',  'G'] => Ok(Champion::GANGPLANK),
            /* GARE */ [ 'G',  'A',  'R',  'E'] => Ok(Champion::GAREN),
            /* GNAR */ [ 'G',  'N',  'A',  'R'] => Ok(Champion::GNAR),
            /* GRAG */ [ 'G',  'R',  'A',  'G'] => Ok(Champion::GRAGAS),
            /* GRAV */ [ 'G',  'R',  'A',  'V'] => Ok(Champion::GRAVES),
            /* GWEN */ [ 'G',  'W',  'E',  'N'] => Ok(Champion::GWEN),
            /* HECA */ [ 'H',  'E',  'C',  'A'] => Ok(Champion::HECARIM),
            /* HEIM */ [ 'H',  'E',  'I',  'M'] => Ok(Champion::HEIMERDINGER),
            /* HWEI */ [ 'H',  'W',  'E',  'I'] => Ok(Champion::HWEI),
            /* ILLA */ [ 'I',  'L',  'L',  'A'] => Ok(Champion::ILLAOI),
            /* IREL */ [ 'I',  'R',  'E',  'L'] => Ok(Champion::IRELIA),
            /* IVER */ [ 'I',  'V',  'E',  'R'] => Ok(Champion::IVERN),
            /* JANN */ [ 'J',  'A',  'N',  'N'] => Ok(Champion::JANNA),
            /* JARV */ [ 'J',  'A',  'R',  'V'] => Ok(Champion::JARVAN_IV),
            /* JAX  */ [ 'J',  'A',  'X', '\0'] => Ok(Champion::JAX),
            /* JAYC */ [ 'J',  'A',  'Y',  'C'] => Ok(Champion::JAYCE),
            /* JHIN */ [ 'J',  'H',  'I',  'N'] => Ok(Champion::JHIN),
            /* JINX */ [ 'J',  'I',  'N',  'X'] => Ok(Champion::JINX),
            /* KSAN */ [ 'K',  'S',  'A',  'N'] => Ok(Champion::K_SANTE),
            /* K    */ [ 'K', '\0', '\0', '\0'] => Ok(Champion::K_SANTE),
            /* KAIS */ [ 'K',  'A',  'I',  'S'] => Ok(Champion::KAI_SA),
            /* KAI  */ [ 'K',  'A',  'I', '\0'] => Ok(Champion::KAI_SA),
            /* KALI */ [ 'K',  'A',  'L',  'I'] => Ok(Champion::KALISTA),
            /* KARM */ [ 'K',  'A',  'R',  'M'] => Ok(Champion::KARMA),
            /* KART */ [ 'K',  'A',  'R',  'T'] => Ok(Champion::KARTHUS),
            /* KASS */ [ 'K',  'A',  'S',  'S'] => Ok(Champion::KASSADIN),
            /* KATA */ [ 'K',  'A',  'T',  'A'] => Ok(Champion::KATARINA),
            /* KAYL */ [ 'K',  'A',  'Y',  'L'] => Ok(Champion::KAYLE),
            /* KAYN */ [ 'K',  'A',  'Y',  'N'] => Ok(Champion::KAYN),
            /* KENN */ [ 'K',  'E',  'N',  'N'] => Ok(Champion::KENNEN),
            /* KHAZ */ [ 'K',  'H',  'A',  'Z'] => Ok(Champion::KHA_ZIX),
            /* KHA  */ [ 'K',  'H',  'A', '\0'] => Ok(Champion::KHA_ZIX),
            /* KIND */ [ 'K',  'I',  'N',  'D'] => Ok(Champion::KINDRED),
            /* KLED */ [ 'K',  'L',  'E',  'D'] => Ok(Champion::KLED),
            /* KOGM */ [ 'K',  'O',  'G',  'M'] => Ok(Champion::KOG_MAW),
            /* KOG  */ [ 'K',  'O',  'G', '\0'] => Ok(Champion::KOG_MAW),
            /* LEBL */ [ 'L',  'E',  'B',  'L'] => Ok(Champion::LE_BLANC),
            /* LEES */ [ 'L',  'E',  'E',  'S'] => Ok(Champion::LEE_SIN),
            /* LEE  */ [ 'L',  'E',  'E', '\0'] => Ok(Champion::LEE_SIN),
            /* LEON */ [ 'L',  'E',  'O',  'N'] => Ok(Champion::LEONA),
            /* LILL */ [ 'L',  'I',  'L',  'L'] => Ok(Champion::LILLIA),
            /* LISS */ [ 'L',  'I',  'S',  'S'] => Ok(Champion::LISSANDRA),
            /* LOCK */ [ 'L',  'O',  'C',  'K'] => Ok(Champion::LOCKE),
            /* LUCI */ [ 'L',  'U',  'C',  'I'] => Ok(Champion::LUCIAN),
            /* LULU */ [ 'L',  'U',  'L',  'U'] => Ok(Champion::LULU),
            /* LUX  */ [ 'L',  'U',  'X', '\0'] => Ok(Champion::LUX),
            /* MALP */ [ 'M',  'A',  'L',  'P'] => Ok(Champion::MALPHITE),
            /* MALZ */ [ 'M',  'A',  'L',  'Z'] => Ok(Champion::MALZAHAR),
            /* MAOK */ [ 'M',  'A',  'O',  'K'] => Ok(Champion::MAOKAI),
            /* MAST */ [ 'M',  'A',  'S',  'T'] => Ok(Champion::MASTER_YI),
            /* MEL  */ [ 'M',  'E',  'L', '\0'] => Ok(Champion::MEL),
            /* MILI */ [ 'M',  'I',  'L',  'I'] => Ok(Champion::MILIO),
            /* MISS */ [ 'M',  'I',  'S',  'S'] => Ok(Champion::MISS_FORTUNE),
            /* MORD */ [ 'M',  'O',  'R',  'D'] => Ok(Champion::MORDEKAISER),
            /* MORG */ [ 'M',  'O',  'R',  'G'] => Ok(Champion::MORGANA),
            /* NAAF */ [ 'N',  'A',  'A',  'F'] => Ok(Champion::NAAFIRI),
            /* NAMI */ [ 'N',  'A',  'M',  'I'] => Ok(Champion::NAMI),
            /* NASU */ [ 'N',  'A',  'S',  'U'] => Ok(Champion::NASUS),
            /* NAUT */ [ 'N',  'A',  'U',  'T'] => Ok(Champion::NAUTILUS),
            /* NEEK */ [ 'N',  'E',  'E',  'K'] => Ok(Champion::NEEKO),
            /* NIDA */ [ 'N',  'I',  'D',  'A'] => Ok(Champion::NIDALEE),
            /* NILA */ [ 'N',  'I',  'L',  'A'] => Ok(Champion::NILAH),
            /* NOCT */ [ 'N',  'O',  'C',  'T'] => Ok(Champion::NOCTURNE),
            /* NUNU */ [ 'N',  'U',  'N',  'U'] => Ok(Champion::NUNU_WILLUMP),
            /* OLAF */ [ 'O',  'L',  'A',  'F'] => Ok(Champion::OLAF),
            /* ORIA */ [ 'O',  'R',  'I',  'A'] => Ok(Champion::ORIANNA),
            /* ORNN */ [ 'O',  'R',  'N',  'N'] => Ok(Champion::ORNN),
            /* PANT */ [ 'P',  'A',  'N',  'T'] => Ok(Champion::PANTHEON),
            /* POPP */ [ 'P',  'O',  'P',  'P'] => Ok(Champion::POPPY),
            /* PYKE */ [ 'P',  'Y',  'K',  'E'] => Ok(Champion::PYKE),
            /* QIYA */ [ 'Q',  'I',  'Y',  'A'] => Ok(Champion::QIYANA),
            /* QUIN */ [ 'Q',  'U',  'I',  'N'] => Ok(Champion::QUINN),
            /* RAKA */ [ 'R',  'A',  'K',  'A'] => Ok(Champion::RAKAN),
            /* RAMM */ [ 'R',  'A',  'M',  'M'] => Ok(Champion::RAMMUS),
            /* REKS */ [ 'R',  'E',  'K',  'S'] => Ok(Champion::REK_SAI),
            /* REK  */ [ 'R',  'E',  'K', '\0'] => Ok(Champion::REK_SAI),
            /* RELL */ [ 'R',  'E',  'L',  'L'] => Ok(Champion::RELL),
            /* RENA */ [ 'R',  'E',  'N',  'A'] => Ok(Champion::RENATA_GLASC),
            /* RENE */ [ 'R',  'E',  'N',  'E'] => Ok(Champion::RENEKTON),
            /* RENG */ [ 'R',  'E',  'N',  'G'] => Ok(Champion::RENGAR),
            /* RIVE */ [ 'R',  'I',  'V',  'E'] => Ok(Champion::RIVEN),
            /* RUMB */ [ 'R',  'U',  'M',  'B'] => Ok(Champion::RUMBLE),
            /* RYZE */ [ 'R',  'Y',  'Z',  'E'] => Ok(Champion::RYZE),
            /* SAMI */ [ 'S',  'A',  'M',  'I'] => Ok(Champion::SAMIRA),
            /* SEJU */ [ 'S',  'E',  'J',  'U'] => Ok(Champion::SEJUANI),
            /* SENN */ [ 'S',  'E',  'N',  'N'] => Ok(Champion::SENNA),
            /* SERA */ [ 'S',  'E',  'R',  'A'] => Ok(Champion::SERAPHINE),
            /* SETT */ [ 'S',  'E',  'T',  'T'] => Ok(Champion::SETT),
            /* SHAC */ [ 'S',  'H',  'A',  'C'] => Ok(Champion::SHACO),
            /* SHEN */ [ 'S',  'H',  'E',  'N'] => Ok(Champion::SHEN),
            /* SHYV */ [ 'S',  'H',  'Y',  'V'] => Ok(Champion::SHYVANA),
            /* SING */ [ 'S',  'I',  'N',  'G'] => Ok(Champion::SINGED),
            /* SION */ [ 'S',  'I',  'O',  'N'] => Ok(Champion::SION),
            /* SIVI */ [ 'S',  'I',  'V',  'I'] => Ok(Champion::SIVIR),
            /* SKAR */ [ 'S',  'K',  'A',  'R'] => Ok(Champion::SKARNER),
            /* SMOL */ [ 'S',  'M',  'O',  'L'] => Ok(Champion::SMOLDER),
            /* SONA */ [ 'S',  'O',  'N',  'A'] => Ok(Champion::SONA),
            /* SORA */ [ 'S',  'O',  'R',  'A'] => Ok(Champion::SORAKA),
            /* SWAI */ [ 'S',  'W',  'A',  'I'] => Ok(Champion::SWAIN),
            /* SYLA */ [ 'S',  'Y',  'L',  'A'] => Ok(Champion::SYLAS),
            /* SYND */ [ 'S',  'Y',  'N',  'D'] => Ok(Champion::SYNDRA),
            /* TAHM */ [ 'T',  'A',  'H',  'M'] => Ok(Champion::TAHM_KENCH),
            /* TALI */ [ 'T',  'A',  'L',  'I'] => Ok(Champion::TALIYAH),
            /* TALO */ [ 'T',  'A',  'L',  'O'] => Ok(Champion::TALON),
            /* TARI */ [ 'T',  'A',  'R',  'I'] => Ok(Champion::TARIC),
            /* TEEM */ [ 'T',  'E',  'E',  'M'] => Ok(Champion::TEEMO),
            /* THRE */ [ 'T',  'H',  'R',  'E'] => Ok(Champion::THRESH),
            /* TRIS */ [ 'T',  'R',  'I',  'S'] => Ok(Champion::TRISTANA),
            /* TRUN */ [ 'T',  'R',  'U',  'N'] => Ok(Champion::TRUNDLE),
            /* TRYN */ [ 'T',  'R',  'Y',  'N'] => Ok(Champion::TRYNDAMERE),
            /* TWIS */ [ 'T',  'W',  'I',  'S'] => Ok(Champion::TWISTED_FATE),
            /* TWIT */ [ 'T',  'W',  'I',  'T'] => Ok(Champion::TWITCH),
            /* UDYR */ [ 'U',  'D',  'Y',  'R'] => Ok(Champion::UDYR),
            /* URGO */ [ 'U',  'R',  'G',  'O'] => Ok(Champion::URGOT),
            /* VARU */ [ 'V',  'A',  'R',  'U'] => Ok(Champion::VARUS),
            /* VAYN */ [ 'V',  'A',  'Y',  'N'] => Ok(Champion::VAYNE),
            /* VEIG */ [ 'V',  'E',  'I',  'G'] => Ok(Champion::VEIGAR),
            /* VELK */ [ 'V',  'E',  'L',  'K'] => Ok(Champion::VEL_KOZ),
            /* VEL  */ [ 'V',  'E',  'L', '\0'] => Ok(Champion::VEL_KOZ),
            /* VEX  */ [ 'V',  'E',  'X', '\0'] => Ok(Champion::VEX),
            /* VI   */ [ 'V',  'I', '\0', '\0'] => Ok(Champion::VI),
            /* VIEG */ [ 'V',  'I',  'E',  'G'] => Ok(Champion::VIEGO),
            /* VIKT */ [ 'V',  'I',  'K',  'T'] => Ok(Champion::VIKTOR),
            /* VLAD */ [ 'V',  'L',  'A',  'D'] => Ok(Champion::VLADIMIR),
            /* VOLI */ [ 'V',  'O',  'L',  'I'] => Ok(Champion::VOLIBEAR),
            /* WARW */ [ 'W',  'A',  'R',  'W'] => Ok(Champion::WARWICK),
            /* WUKO */ [ 'W',  'U',  'K',  'O'] => Ok(Champion::WUKONG),
            /* MONK */ [ 'M',  'O',  'N',  'K'] => Ok(Champion::WUKONG),
            /* XAYA */ [ 'X',  'A',  'Y',  'A'] => Ok(Champion::XAYAH),
            /* XERA */ [ 'X',  'E',  'R',  'A'] => Ok(Champion::XERATH),
            /* XINZ */ [ 'X',  'I',  'N',  'Z'] => Ok(Champion::XIN_ZHAO),
            /* XIN  */ [ 'X',  'I',  'N', '\0'] => Ok(Champion::XIN_ZHAO),
            /* YASU */ [ 'Y',  'A',  'S',  'U'] => Ok(Champion::YASUO),
            /* YONE */ [ 'Y',  'O',  'N',  'E'] => Ok(Champion::YONE),
            /* YORI */ [ 'Y',  'O',  'R',  'I'] => Ok(Champion::YORICK),
            /* YUNA */ [ 'Y',  'U',  'N',  'A'] => Ok(Champion::YUNARA),
            /* YUUM */ [ 'Y',  'U',  'U',  'M'] => Ok(Champion::YUUMI),
            /* ZAAH */ [ 'Z',  'A',  'A',  'H'] => Ok(Champion::ZAAHEN),
            /* ZAC  */ [ 'Z',  'A',  'C', '\0'] => Ok(Champion::ZAC),
            /* ZED  */ [ 'Z',  'E',  'D', '\0'] => Ok(Champion::ZED),
            /* ZERI */ [ 'Z',  'E',  'R',  'I'] => Ok(Champion::ZERI),
            /* ZIGG */ [ 'Z',  'I',  'G',  'G'] => Ok(Champion::ZIGGS),
            /* ZILE */ [ 'Z',  'I',  'L',  'E'] => Ok(Champion::ZILEAN),
            /* ZOE  */ [ 'Z',  'O',  'E', '\0'] => Ok(Champion::ZOE),
            /* ZYRA */ [ 'Z',  'Y',  'R',  'A'] => Ok(Champion::ZYRA),
            unknown => Err(ParseChampionError(unknown)),
        }
    }
}

impl std::convert::TryFrom<&str> for Champion {
    type Error = <Self as std::str::FromStr>::Err;
    fn try_from(value: &str) -> Result<Self, Self::Error> {
        <Self as std::str::FromStr>::from_str(value)
    }
}