mtg_data/
creature_type.rs

1#[derive(idris_derive::Idris)]
2#[idris(repr = usize)]
3#[derive(serde::Serialize, serde::Deserialize)]
4#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord)]
5#[cfg_attr(feature = "ts_export", derive(ts_rs::TS))]
6pub enum CreatureType {
7    Advisor,
8    Aetherborn,
9    Alien,
10    Ally,
11    Angel,
12    Antelope,
13    Ape,
14    Archer,
15    Archon,
16    Armadillo,
17    Army,
18    Artifact,
19    Artificer,
20    Assassin,
21    AssemblyWorker,
22    Astartes,
23    Atog,
24    Aurochs,
25    Automaton,
26    Avatar,
27    Azra,
28    Badger,
29    Balloon,
30    Barbarian,
31    Bard,
32    Basilisk,
33    Bat,
34    Bear,
35    Beast,
36    Beaver,
37    Beeble,
38    Beholder,
39    Berserker,
40    Bird,
41    Bison,
42    Blinkmoth,
43    Boar,
44    Brainiac,
45    Bringer,
46    Brushwagg,
47    Ctan,
48    Camarid,
49    Camel,
50    Capybara,
51    Caribou,
52    Carrier,
53    Cat,
54    Centaur,
55    Chicken,
56    Child,
57    Chimera,
58    Citizen,
59    Cleric,
60    Clown,
61    Cockatrice,
62    Construct,
63    Coward,
64    Coyote,
65    Crab,
66    Crocodile,
67    Custodes,
68    Cyberman,
69    Cyclops,
70    Dalek,
71    Dauthi,
72    Demigod,
73    Demon,
74    Deserter,
75    Detective,
76    Devil,
77    Dinosaur,
78    Djinn,
79    Doctor,
80    Dog,
81    Dragon,
82    Drake,
83    Dreadnought,
84    Drix,
85    Drone,
86    Druid,
87    Dryad,
88    Dwarf,
89    Echidna,
90    Efreet,
91    Egg,
92    Elder,
93    Eldrazi,
94    Elemental,
95    Elephant,
96    Elf,
97    Elk,
98    Employee,
99    Eye,
100    Faerie,
101    Ferret,
102    Fish,
103    Flagbearer,
104    Fox,
105    Fractal,
106    Frog,
107    Fungus,
108    Gamer,
109    Gargoyle,
110    Germ,
111    Giant,
112    Gith,
113    Glimmer,
114    Gnoll,
115    Gnome,
116    Goat,
117    Goblin,
118    God,
119    Golem,
120    Gorgon,
121    Graveborn,
122    Gremlin,
123    Griffin,
124    Guest,
125    Hag,
126    Halfling,
127    Hamster,
128    Harpy,
129    Head,
130    Hedgehog,
131    Hellion,
132    Hero,
133    Hippo,
134    Hippogriff,
135    Homarid,
136    Homunculus,
137    Hornet,
138    Horror,
139    Horse,
140    Human,
141    Hydra,
142    Hyena,
143    Illusion,
144    Imp,
145    Incarnation,
146    Inkling,
147    Inquisitor,
148    Insect,
149    Jackal,
150    Jellyfish,
151    Juggernaut,
152    Kangaroo,
153    Kavu,
154    Kirin,
155    Kithkin,
156    Knight,
157    Kobold,
158    Kor,
159    Kraken,
160    Lamia,
161    Lammasu,
162    Leech,
163    Lemur,
164    Leviathan,
165    Lhurgoyf,
166    Licid,
167    Lizard,
168    Lobster,
169    Manticore,
170    Masticore,
171    Mercenary,
172    Merfolk,
173    Metathran,
174    Minion,
175    Minotaur,
176    Mite,
177    Mole,
178    Monger,
179    Mongoose,
180    Monk,
181    Monkey,
182    Moogle,
183    Moonfolk,
184    Mount,
185    Mouse,
186    Mutant,
187    Myr,
188    Mystic,
189    Naga,
190    Nautilus,
191    Necron,
192    Nephilim,
193    Nightmare,
194    Nightstalker,
195    Ninja,
196    Noble,
197    Noggle,
198    Nomad,
199    Nymph,
200    Octopus,
201    Ogre,
202    Ooze,
203    Orb,
204    Orc,
205    Orgg,
206    Otter,
207    Ouphe,
208    Ox,
209    Oyster,
210    Pangolin,
211    Peasant,
212    Pegasus,
213    Pentavite,
214    Performer,
215    Pest,
216    Phelddagrif,
217    Phoenix,
218    Phyrexian,
219    Pilot,
220    Pincher,
221    Pirate,
222    Plant,
223    Porcupine,
224    Possum,
225    Praetor,
226    Primarch,
227    Prism,
228    Processor,
229    Qu,
230    Rabbit,
231    Raccoon,
232    Ranger,
233    Rat,
234    Rebel,
235    Reflection,
236    Reveler,
237    Rhino,
238    Rigger,
239    Robot,
240    Rogue,
241    Rukh,
242    Sable,
243    Salamander,
244    Samurai,
245    Sand,
246    Saproling,
247    Satyr,
248    Scarecrow,
249    Scientist,
250    Scion,
251    Scorpion,
252    Scout,
253    Sculpture,
254    Seal,
255    Serf,
256    Serpent,
257    Servo,
258    Shade,
259    Shaman,
260    Shapeshifter,
261    Shark,
262    Sheep,
263    Siren,
264    Skeleton,
265    Skunk,
266    Slith,
267    Sliver,
268    Sloth,
269    Slug,
270    Snail,
271    Snake,
272    Soldier,
273    Soltari,
274    Sorcerer,
275    Spawn,
276    Specter,
277    Spellshaper,
278    Sphinx,
279    Spider,
280    Spike,
281    Spirit,
282    Splinter,
283    Sponge,
284    Spy,
285    Squid,
286    Squirrel,
287    Starfish,
288    Surrakar,
289    Survivor,
290    Symbiote,
291    Synth,
292    Teddy,
293    Tentacle,
294    Tetravite,
295    Thalakos,
296    Thopter,
297    Thrull,
298    Tiefling,
299    TimeLord,
300    Toy,
301    Treefolk,
302    Trilobite,
303    Triskelavite,
304    Troll,
305    Turtle,
306    Tyranid,
307    Unicorn,
308    Urzan,
309    Vampire,
310    Varmint,
311    Vedalken,
312    Villain,
313    Volver,
314    Wall,
315    Walrus,
316    Warlock,
317    Warrior,
318    Wasp,
319    Weasel,
320    Weird,
321    Werewolf,
322    Whale,
323    Wizard,
324    Wolf,
325    Wolverine,
326    Wombat,
327    Worm,
328    Wraith,
329    Wurm,
330    Yeti,
331    Zombie,
332    Zubera,
333}
334
335impl std::str::FromStr for CreatureType {
336    type Err = crate::ParsingError;
337    fn from_str(s: &str) -> Result<Self, Self::Err> {
338        match s {
339            "advisor" => Ok(Self::Advisor),
340            "aetherborn" => Ok(Self::Aetherborn),
341            "alien" => Ok(Self::Alien),
342            "ally" => Ok(Self::Ally),
343            "angel" => Ok(Self::Angel),
344            "antelope" => Ok(Self::Antelope),
345            "ape" => Ok(Self::Ape),
346            "archer" => Ok(Self::Archer),
347            "archon" => Ok(Self::Archon),
348            "armadillo" => Ok(Self::Armadillo),
349            "army" => Ok(Self::Army),
350            "artifact" => Ok(Self::Artifact),
351            "artificer" => Ok(Self::Artificer),
352            "assassin" => Ok(Self::Assassin),
353            "assembly-worker" => Ok(Self::AssemblyWorker),
354            "astartes" => Ok(Self::Astartes),
355            "atog" => Ok(Self::Atog),
356            "aurochs" => Ok(Self::Aurochs),
357            "automaton" => Ok(Self::Automaton),
358            "avatar" => Ok(Self::Avatar),
359            "azra" => Ok(Self::Azra),
360            "badger" => Ok(Self::Badger),
361            "balloon" => Ok(Self::Balloon),
362            "barbarian" => Ok(Self::Barbarian),
363            "bard" => Ok(Self::Bard),
364            "basilisk" => Ok(Self::Basilisk),
365            "bat" => Ok(Self::Bat),
366            "bear" => Ok(Self::Bear),
367            "beast" => Ok(Self::Beast),
368            "beaver" => Ok(Self::Beaver),
369            "beeble" => Ok(Self::Beeble),
370            "beholder" => Ok(Self::Beholder),
371            "berserker" => Ok(Self::Berserker),
372            "bird" => Ok(Self::Bird),
373            "bison" => Ok(Self::Bison),
374            "blinkmoth" => Ok(Self::Blinkmoth),
375            "boar" => Ok(Self::Boar),
376            "brainiac" => Ok(Self::Brainiac),
377            "bringer" => Ok(Self::Bringer),
378            "brushwagg" => Ok(Self::Brushwagg),
379            "c'tan" => Ok(Self::Ctan),
380            "camarid" => Ok(Self::Camarid),
381            "camel" => Ok(Self::Camel),
382            "capybara" => Ok(Self::Capybara),
383            "caribou" => Ok(Self::Caribou),
384            "carrier" => Ok(Self::Carrier),
385            "cat" => Ok(Self::Cat),
386            "centaur" => Ok(Self::Centaur),
387            "chicken" => Ok(Self::Chicken),
388            "child" => Ok(Self::Child),
389            "chimera" => Ok(Self::Chimera),
390            "citizen" => Ok(Self::Citizen),
391            "cleric" => Ok(Self::Cleric),
392            "clown" => Ok(Self::Clown),
393            "cockatrice" => Ok(Self::Cockatrice),
394            "construct" => Ok(Self::Construct),
395            "coward" => Ok(Self::Coward),
396            "coyote" => Ok(Self::Coyote),
397            "crab" => Ok(Self::Crab),
398            "crocodile" => Ok(Self::Crocodile),
399            "custodes" => Ok(Self::Custodes),
400            "cyberman" => Ok(Self::Cyberman),
401            "cyclops" => Ok(Self::Cyclops),
402            "dalek" => Ok(Self::Dalek),
403            "dauthi" => Ok(Self::Dauthi),
404            "demigod" => Ok(Self::Demigod),
405            "demon" => Ok(Self::Demon),
406            "deserter" => Ok(Self::Deserter),
407            "detective" => Ok(Self::Detective),
408            "devil" => Ok(Self::Devil),
409            "dinosaur" => Ok(Self::Dinosaur),
410            "djinn" => Ok(Self::Djinn),
411            "doctor" => Ok(Self::Doctor),
412            "dog" => Ok(Self::Dog),
413            "dragon" => Ok(Self::Dragon),
414            "drake" => Ok(Self::Drake),
415            "dreadnought" => Ok(Self::Dreadnought),
416            "drix" => Ok(Self::Drix),
417            "drone" => Ok(Self::Drone),
418            "druid" => Ok(Self::Druid),
419            "dryad" => Ok(Self::Dryad),
420            "dwarf" => Ok(Self::Dwarf),
421            "echidna" => Ok(Self::Echidna),
422            "efreet" => Ok(Self::Efreet),
423            "egg" => Ok(Self::Egg),
424            "elder" => Ok(Self::Elder),
425            "eldrazi" => Ok(Self::Eldrazi),
426            "elemental" => Ok(Self::Elemental),
427            "elephant" => Ok(Self::Elephant),
428            "elf" => Ok(Self::Elf),
429            "elk" => Ok(Self::Elk),
430            "employee" => Ok(Self::Employee),
431            "eye" => Ok(Self::Eye),
432            "faerie" => Ok(Self::Faerie),
433            "ferret" => Ok(Self::Ferret),
434            "fish" => Ok(Self::Fish),
435            "flagbearer" => Ok(Self::Flagbearer),
436            "fox" => Ok(Self::Fox),
437            "fractal" => Ok(Self::Fractal),
438            "frog" => Ok(Self::Frog),
439            "fungus" => Ok(Self::Fungus),
440            "gamer" => Ok(Self::Gamer),
441            "gargoyle" => Ok(Self::Gargoyle),
442            "germ" => Ok(Self::Germ),
443            "giant" => Ok(Self::Giant),
444            "gith" => Ok(Self::Gith),
445            "glimmer" => Ok(Self::Glimmer),
446            "gnoll" => Ok(Self::Gnoll),
447            "gnome" => Ok(Self::Gnome),
448            "goat" => Ok(Self::Goat),
449            "goblin" => Ok(Self::Goblin),
450            "god" => Ok(Self::God),
451            "golem" => Ok(Self::Golem),
452            "gorgon" => Ok(Self::Gorgon),
453            "graveborn" => Ok(Self::Graveborn),
454            "gremlin" => Ok(Self::Gremlin),
455            "griffin" => Ok(Self::Griffin),
456            "guest" => Ok(Self::Guest),
457            "hag" => Ok(Self::Hag),
458            "halfling" => Ok(Self::Halfling),
459            "hamster" => Ok(Self::Hamster),
460            "harpy" => Ok(Self::Harpy),
461            "head" => Ok(Self::Head),
462            "hedgehog" => Ok(Self::Hedgehog),
463            "hellion" => Ok(Self::Hellion),
464            "hero" => Ok(Self::Hero),
465            "hippo" => Ok(Self::Hippo),
466            "hippogriff" => Ok(Self::Hippogriff),
467            "homarid" => Ok(Self::Homarid),
468            "homunculus" => Ok(Self::Homunculus),
469            "hornet" => Ok(Self::Hornet),
470            "horror" => Ok(Self::Horror),
471            "horse" => Ok(Self::Horse),
472            "human" => Ok(Self::Human),
473            "hydra" => Ok(Self::Hydra),
474            "hyena" => Ok(Self::Hyena),
475            "illusion" => Ok(Self::Illusion),
476            "imp" => Ok(Self::Imp),
477            "incarnation" => Ok(Self::Incarnation),
478            "inkling" => Ok(Self::Inkling),
479            "inquisitor" => Ok(Self::Inquisitor),
480            "insect" => Ok(Self::Insect),
481            "jackal" => Ok(Self::Jackal),
482            "jellyfish" => Ok(Self::Jellyfish),
483            "juggernaut" => Ok(Self::Juggernaut),
484            "kangaroo" => Ok(Self::Kangaroo),
485            "kavu" => Ok(Self::Kavu),
486            "kirin" => Ok(Self::Kirin),
487            "kithkin" => Ok(Self::Kithkin),
488            "knight" => Ok(Self::Knight),
489            "kobold" => Ok(Self::Kobold),
490            "kor" => Ok(Self::Kor),
491            "kraken" => Ok(Self::Kraken),
492            "lamia" => Ok(Self::Lamia),
493            "lammasu" => Ok(Self::Lammasu),
494            "leech" => Ok(Self::Leech),
495            "lemur" => Ok(Self::Lemur),
496            "leviathan" => Ok(Self::Leviathan),
497            "lhurgoyf" => Ok(Self::Lhurgoyf),
498            "licid" => Ok(Self::Licid),
499            "lizard" => Ok(Self::Lizard),
500            "lobster" => Ok(Self::Lobster),
501            "manticore" => Ok(Self::Manticore),
502            "masticore" => Ok(Self::Masticore),
503            "mercenary" => Ok(Self::Mercenary),
504            "merfolk" => Ok(Self::Merfolk),
505            "metathran" => Ok(Self::Metathran),
506            "minion" => Ok(Self::Minion),
507            "minotaur" => Ok(Self::Minotaur),
508            "mite" => Ok(Self::Mite),
509            "mole" => Ok(Self::Mole),
510            "monger" => Ok(Self::Monger),
511            "mongoose" => Ok(Self::Mongoose),
512            "monk" => Ok(Self::Monk),
513            "monkey" => Ok(Self::Monkey),
514            "moogle" => Ok(Self::Moogle),
515            "moonfolk" => Ok(Self::Moonfolk),
516            "mount" => Ok(Self::Mount),
517            "mouse" => Ok(Self::Mouse),
518            "mutant" => Ok(Self::Mutant),
519            "myr" => Ok(Self::Myr),
520            "mystic" => Ok(Self::Mystic),
521            "naga" => Ok(Self::Naga),
522            "nautilus" => Ok(Self::Nautilus),
523            "necron" => Ok(Self::Necron),
524            "nephilim" => Ok(Self::Nephilim),
525            "nightmare" => Ok(Self::Nightmare),
526            "nightstalker" => Ok(Self::Nightstalker),
527            "ninja" => Ok(Self::Ninja),
528            "noble" => Ok(Self::Noble),
529            "noggle" => Ok(Self::Noggle),
530            "nomad" => Ok(Self::Nomad),
531            "nymph" => Ok(Self::Nymph),
532            "octopus" => Ok(Self::Octopus),
533            "ogre" => Ok(Self::Ogre),
534            "ooze" => Ok(Self::Ooze),
535            "orb" => Ok(Self::Orb),
536            "orc" => Ok(Self::Orc),
537            "orgg" => Ok(Self::Orgg),
538            "otter" => Ok(Self::Otter),
539            "ouphe" => Ok(Self::Ouphe),
540            "ox" => Ok(Self::Ox),
541            "oyster" => Ok(Self::Oyster),
542            "pangolin" => Ok(Self::Pangolin),
543            "peasant" => Ok(Self::Peasant),
544            "pegasus" => Ok(Self::Pegasus),
545            "pentavite" => Ok(Self::Pentavite),
546            "performer" => Ok(Self::Performer),
547            "pest" => Ok(Self::Pest),
548            "phelddagrif" => Ok(Self::Phelddagrif),
549            "phoenix" => Ok(Self::Phoenix),
550            "phyrexian" => Ok(Self::Phyrexian),
551            "pilot" => Ok(Self::Pilot),
552            "pincher" => Ok(Self::Pincher),
553            "pirate" => Ok(Self::Pirate),
554            "plant" => Ok(Self::Plant),
555            "porcupine" => Ok(Self::Porcupine),
556            "possum" => Ok(Self::Possum),
557            "praetor" => Ok(Self::Praetor),
558            "primarch" => Ok(Self::Primarch),
559            "prism" => Ok(Self::Prism),
560            "processor" => Ok(Self::Processor),
561            "qu" => Ok(Self::Qu),
562            "rabbit" => Ok(Self::Rabbit),
563            "raccoon" => Ok(Self::Raccoon),
564            "ranger" => Ok(Self::Ranger),
565            "rat" => Ok(Self::Rat),
566            "rebel" => Ok(Self::Rebel),
567            "reflection" => Ok(Self::Reflection),
568            "reveler" => Ok(Self::Reveler),
569            "rhino" => Ok(Self::Rhino),
570            "rigger" => Ok(Self::Rigger),
571            "robot" => Ok(Self::Robot),
572            "rogue" => Ok(Self::Rogue),
573            "rukh" => Ok(Self::Rukh),
574            "sable" => Ok(Self::Sable),
575            "salamander" => Ok(Self::Salamander),
576            "samurai" => Ok(Self::Samurai),
577            "sand" => Ok(Self::Sand),
578            "saproling" => Ok(Self::Saproling),
579            "satyr" => Ok(Self::Satyr),
580            "scarecrow" => Ok(Self::Scarecrow),
581            "scientist" => Ok(Self::Scientist),
582            "scion" => Ok(Self::Scion),
583            "scorpion" => Ok(Self::Scorpion),
584            "scout" => Ok(Self::Scout),
585            "sculpture" => Ok(Self::Sculpture),
586            "seal" => Ok(Self::Seal),
587            "serf" => Ok(Self::Serf),
588            "serpent" => Ok(Self::Serpent),
589            "servo" => Ok(Self::Servo),
590            "shade" => Ok(Self::Shade),
591            "shaman" => Ok(Self::Shaman),
592            "shapeshifter" => Ok(Self::Shapeshifter),
593            "shark" => Ok(Self::Shark),
594            "sheep" => Ok(Self::Sheep),
595            "siren" => Ok(Self::Siren),
596            "skeleton" => Ok(Self::Skeleton),
597            "skunk" => Ok(Self::Skunk),
598            "slith" => Ok(Self::Slith),
599            "sliver" => Ok(Self::Sliver),
600            "sloth" => Ok(Self::Sloth),
601            "slug" => Ok(Self::Slug),
602            "snail" => Ok(Self::Snail),
603            "snake" => Ok(Self::Snake),
604            "soldier" => Ok(Self::Soldier),
605            "soltari" => Ok(Self::Soltari),
606            "sorcerer" => Ok(Self::Sorcerer),
607            "spawn" => Ok(Self::Spawn),
608            "specter" => Ok(Self::Specter),
609            "spellshaper" => Ok(Self::Spellshaper),
610            "sphinx" => Ok(Self::Sphinx),
611            "spider" => Ok(Self::Spider),
612            "spike" => Ok(Self::Spike),
613            "spirit" => Ok(Self::Spirit),
614            "splinter" => Ok(Self::Splinter),
615            "sponge" => Ok(Self::Sponge),
616            "spy" => Ok(Self::Spy),
617            "squid" => Ok(Self::Squid),
618            "squirrel" => Ok(Self::Squirrel),
619            "starfish" => Ok(Self::Starfish),
620            "surrakar" => Ok(Self::Surrakar),
621            "survivor" => Ok(Self::Survivor),
622            "symbiote" => Ok(Self::Symbiote),
623            "synth" => Ok(Self::Synth),
624            "teddy" => Ok(Self::Teddy),
625            "tentacle" => Ok(Self::Tentacle),
626            "tetravite" => Ok(Self::Tetravite),
627            "thalakos" => Ok(Self::Thalakos),
628            "thopter" => Ok(Self::Thopter),
629            "thrull" => Ok(Self::Thrull),
630            "tiefling" => Ok(Self::Tiefling),
631            "time lord" => Ok(Self::TimeLord),
632            "toy" => Ok(Self::Toy),
633            "treefolk" => Ok(Self::Treefolk),
634            "trilobite" => Ok(Self::Trilobite),
635            "triskelavite" => Ok(Self::Triskelavite),
636            "troll" => Ok(Self::Troll),
637            "turtle" => Ok(Self::Turtle),
638            "tyranid" => Ok(Self::Tyranid),
639            "unicorn" => Ok(Self::Unicorn),
640            "urzan" => Ok(Self::Urzan),
641            "vampire" => Ok(Self::Vampire),
642            "varmint" => Ok(Self::Varmint),
643            "vedalken" => Ok(Self::Vedalken),
644            "villain" => Ok(Self::Villain),
645            "volver" => Ok(Self::Volver),
646            "wall" => Ok(Self::Wall),
647            "walrus" => Ok(Self::Walrus),
648            "warlock" => Ok(Self::Warlock),
649            "warrior" => Ok(Self::Warrior),
650            "wasp" => Ok(Self::Wasp),
651            "weasel" => Ok(Self::Weasel),
652            "weird" => Ok(Self::Weird),
653            "werewolf" => Ok(Self::Werewolf),
654            "whale" => Ok(Self::Whale),
655            "wizard" => Ok(Self::Wizard),
656            "wolf" => Ok(Self::Wolf),
657            "wolverine" => Ok(Self::Wolverine),
658            "wombat" => Ok(Self::Wombat),
659            "worm" => Ok(Self::Worm),
660            "wraith" => Ok(Self::Wraith),
661            "wurm" => Ok(Self::Wurm),
662            "yeti" => Ok(Self::Yeti),
663            "zombie" => Ok(Self::Zombie),
664            "zubera" => Ok(Self::Zubera),
665            _ => Err(crate::ParsingError {
666                item: "CreatureType",
667                message: "provided source does not match",
668            }),
669        }
670    }
671}
672
673impl CreatureType {
674    pub fn as_str(&self) -> &'static str {
675        match self {
676            Self::Advisor => "advisor",
677            Self::Aetherborn => "aetherborn",
678            Self::Alien => "alien",
679            Self::Ally => "ally",
680            Self::Angel => "angel",
681            Self::Antelope => "antelope",
682            Self::Ape => "ape",
683            Self::Archer => "archer",
684            Self::Archon => "archon",
685            Self::Armadillo => "armadillo",
686            Self::Army => "army",
687            Self::Artifact => "artifact",
688            Self::Artificer => "artificer",
689            Self::Assassin => "assassin",
690            Self::AssemblyWorker => "assembly-worker",
691            Self::Astartes => "astartes",
692            Self::Atog => "atog",
693            Self::Aurochs => "aurochs",
694            Self::Automaton => "automaton",
695            Self::Avatar => "avatar",
696            Self::Azra => "azra",
697            Self::Badger => "badger",
698            Self::Balloon => "balloon",
699            Self::Barbarian => "barbarian",
700            Self::Bard => "bard",
701            Self::Basilisk => "basilisk",
702            Self::Bat => "bat",
703            Self::Bear => "bear",
704            Self::Beast => "beast",
705            Self::Beaver => "beaver",
706            Self::Beeble => "beeble",
707            Self::Beholder => "beholder",
708            Self::Berserker => "berserker",
709            Self::Bird => "bird",
710            Self::Bison => "bison",
711            Self::Blinkmoth => "blinkmoth",
712            Self::Boar => "boar",
713            Self::Brainiac => "brainiac",
714            Self::Bringer => "bringer",
715            Self::Brushwagg => "brushwagg",
716            Self::Ctan => "c'tan",
717            Self::Camarid => "camarid",
718            Self::Camel => "camel",
719            Self::Capybara => "capybara",
720            Self::Caribou => "caribou",
721            Self::Carrier => "carrier",
722            Self::Cat => "cat",
723            Self::Centaur => "centaur",
724            Self::Chicken => "chicken",
725            Self::Child => "child",
726            Self::Chimera => "chimera",
727            Self::Citizen => "citizen",
728            Self::Cleric => "cleric",
729            Self::Clown => "clown",
730            Self::Cockatrice => "cockatrice",
731            Self::Construct => "construct",
732            Self::Coward => "coward",
733            Self::Coyote => "coyote",
734            Self::Crab => "crab",
735            Self::Crocodile => "crocodile",
736            Self::Custodes => "custodes",
737            Self::Cyberman => "cyberman",
738            Self::Cyclops => "cyclops",
739            Self::Dalek => "dalek",
740            Self::Dauthi => "dauthi",
741            Self::Demigod => "demigod",
742            Self::Demon => "demon",
743            Self::Deserter => "deserter",
744            Self::Detective => "detective",
745            Self::Devil => "devil",
746            Self::Dinosaur => "dinosaur",
747            Self::Djinn => "djinn",
748            Self::Doctor => "doctor",
749            Self::Dog => "dog",
750            Self::Dragon => "dragon",
751            Self::Drake => "drake",
752            Self::Dreadnought => "dreadnought",
753            Self::Drix => "drix",
754            Self::Drone => "drone",
755            Self::Druid => "druid",
756            Self::Dryad => "dryad",
757            Self::Dwarf => "dwarf",
758            Self::Echidna => "echidna",
759            Self::Efreet => "efreet",
760            Self::Egg => "egg",
761            Self::Elder => "elder",
762            Self::Eldrazi => "eldrazi",
763            Self::Elemental => "elemental",
764            Self::Elephant => "elephant",
765            Self::Elf => "elf",
766            Self::Elk => "elk",
767            Self::Employee => "employee",
768            Self::Eye => "eye",
769            Self::Faerie => "faerie",
770            Self::Ferret => "ferret",
771            Self::Fish => "fish",
772            Self::Flagbearer => "flagbearer",
773            Self::Fox => "fox",
774            Self::Fractal => "fractal",
775            Self::Frog => "frog",
776            Self::Fungus => "fungus",
777            Self::Gamer => "gamer",
778            Self::Gargoyle => "gargoyle",
779            Self::Germ => "germ",
780            Self::Giant => "giant",
781            Self::Gith => "gith",
782            Self::Glimmer => "glimmer",
783            Self::Gnoll => "gnoll",
784            Self::Gnome => "gnome",
785            Self::Goat => "goat",
786            Self::Goblin => "goblin",
787            Self::God => "god",
788            Self::Golem => "golem",
789            Self::Gorgon => "gorgon",
790            Self::Graveborn => "graveborn",
791            Self::Gremlin => "gremlin",
792            Self::Griffin => "griffin",
793            Self::Guest => "guest",
794            Self::Hag => "hag",
795            Self::Halfling => "halfling",
796            Self::Hamster => "hamster",
797            Self::Harpy => "harpy",
798            Self::Head => "head",
799            Self::Hedgehog => "hedgehog",
800            Self::Hellion => "hellion",
801            Self::Hero => "hero",
802            Self::Hippo => "hippo",
803            Self::Hippogriff => "hippogriff",
804            Self::Homarid => "homarid",
805            Self::Homunculus => "homunculus",
806            Self::Hornet => "hornet",
807            Self::Horror => "horror",
808            Self::Horse => "horse",
809            Self::Human => "human",
810            Self::Hydra => "hydra",
811            Self::Hyena => "hyena",
812            Self::Illusion => "illusion",
813            Self::Imp => "imp",
814            Self::Incarnation => "incarnation",
815            Self::Inkling => "inkling",
816            Self::Inquisitor => "inquisitor",
817            Self::Insect => "insect",
818            Self::Jackal => "jackal",
819            Self::Jellyfish => "jellyfish",
820            Self::Juggernaut => "juggernaut",
821            Self::Kangaroo => "kangaroo",
822            Self::Kavu => "kavu",
823            Self::Kirin => "kirin",
824            Self::Kithkin => "kithkin",
825            Self::Knight => "knight",
826            Self::Kobold => "kobold",
827            Self::Kor => "kor",
828            Self::Kraken => "kraken",
829            Self::Lamia => "lamia",
830            Self::Lammasu => "lammasu",
831            Self::Leech => "leech",
832            Self::Lemur => "lemur",
833            Self::Leviathan => "leviathan",
834            Self::Lhurgoyf => "lhurgoyf",
835            Self::Licid => "licid",
836            Self::Lizard => "lizard",
837            Self::Lobster => "lobster",
838            Self::Manticore => "manticore",
839            Self::Masticore => "masticore",
840            Self::Mercenary => "mercenary",
841            Self::Merfolk => "merfolk",
842            Self::Metathran => "metathran",
843            Self::Minion => "minion",
844            Self::Minotaur => "minotaur",
845            Self::Mite => "mite",
846            Self::Mole => "mole",
847            Self::Monger => "monger",
848            Self::Mongoose => "mongoose",
849            Self::Monk => "monk",
850            Self::Monkey => "monkey",
851            Self::Moogle => "moogle",
852            Self::Moonfolk => "moonfolk",
853            Self::Mount => "mount",
854            Self::Mouse => "mouse",
855            Self::Mutant => "mutant",
856            Self::Myr => "myr",
857            Self::Mystic => "mystic",
858            Self::Naga => "naga",
859            Self::Nautilus => "nautilus",
860            Self::Necron => "necron",
861            Self::Nephilim => "nephilim",
862            Self::Nightmare => "nightmare",
863            Self::Nightstalker => "nightstalker",
864            Self::Ninja => "ninja",
865            Self::Noble => "noble",
866            Self::Noggle => "noggle",
867            Self::Nomad => "nomad",
868            Self::Nymph => "nymph",
869            Self::Octopus => "octopus",
870            Self::Ogre => "ogre",
871            Self::Ooze => "ooze",
872            Self::Orb => "orb",
873            Self::Orc => "orc",
874            Self::Orgg => "orgg",
875            Self::Otter => "otter",
876            Self::Ouphe => "ouphe",
877            Self::Ox => "ox",
878            Self::Oyster => "oyster",
879            Self::Pangolin => "pangolin",
880            Self::Peasant => "peasant",
881            Self::Pegasus => "pegasus",
882            Self::Pentavite => "pentavite",
883            Self::Performer => "performer",
884            Self::Pest => "pest",
885            Self::Phelddagrif => "phelddagrif",
886            Self::Phoenix => "phoenix",
887            Self::Phyrexian => "phyrexian",
888            Self::Pilot => "pilot",
889            Self::Pincher => "pincher",
890            Self::Pirate => "pirate",
891            Self::Plant => "plant",
892            Self::Porcupine => "porcupine",
893            Self::Possum => "possum",
894            Self::Praetor => "praetor",
895            Self::Primarch => "primarch",
896            Self::Prism => "prism",
897            Self::Processor => "processor",
898            Self::Qu => "qu",
899            Self::Rabbit => "rabbit",
900            Self::Raccoon => "raccoon",
901            Self::Ranger => "ranger",
902            Self::Rat => "rat",
903            Self::Rebel => "rebel",
904            Self::Reflection => "reflection",
905            Self::Reveler => "reveler",
906            Self::Rhino => "rhino",
907            Self::Rigger => "rigger",
908            Self::Robot => "robot",
909            Self::Rogue => "rogue",
910            Self::Rukh => "rukh",
911            Self::Sable => "sable",
912            Self::Salamander => "salamander",
913            Self::Samurai => "samurai",
914            Self::Sand => "sand",
915            Self::Saproling => "saproling",
916            Self::Satyr => "satyr",
917            Self::Scarecrow => "scarecrow",
918            Self::Scientist => "scientist",
919            Self::Scion => "scion",
920            Self::Scorpion => "scorpion",
921            Self::Scout => "scout",
922            Self::Sculpture => "sculpture",
923            Self::Seal => "seal",
924            Self::Serf => "serf",
925            Self::Serpent => "serpent",
926            Self::Servo => "servo",
927            Self::Shade => "shade",
928            Self::Shaman => "shaman",
929            Self::Shapeshifter => "shapeshifter",
930            Self::Shark => "shark",
931            Self::Sheep => "sheep",
932            Self::Siren => "siren",
933            Self::Skeleton => "skeleton",
934            Self::Skunk => "skunk",
935            Self::Slith => "slith",
936            Self::Sliver => "sliver",
937            Self::Sloth => "sloth",
938            Self::Slug => "slug",
939            Self::Snail => "snail",
940            Self::Snake => "snake",
941            Self::Soldier => "soldier",
942            Self::Soltari => "soltari",
943            Self::Sorcerer => "sorcerer",
944            Self::Spawn => "spawn",
945            Self::Specter => "specter",
946            Self::Spellshaper => "spellshaper",
947            Self::Sphinx => "sphinx",
948            Self::Spider => "spider",
949            Self::Spike => "spike",
950            Self::Spirit => "spirit",
951            Self::Splinter => "splinter",
952            Self::Sponge => "sponge",
953            Self::Spy => "spy",
954            Self::Squid => "squid",
955            Self::Squirrel => "squirrel",
956            Self::Starfish => "starfish",
957            Self::Surrakar => "surrakar",
958            Self::Survivor => "survivor",
959            Self::Symbiote => "symbiote",
960            Self::Synth => "synth",
961            Self::Teddy => "teddy",
962            Self::Tentacle => "tentacle",
963            Self::Tetravite => "tetravite",
964            Self::Thalakos => "thalakos",
965            Self::Thopter => "thopter",
966            Self::Thrull => "thrull",
967            Self::Tiefling => "tiefling",
968            Self::TimeLord => "time lord",
969            Self::Toy => "toy",
970            Self::Treefolk => "treefolk",
971            Self::Trilobite => "trilobite",
972            Self::Triskelavite => "triskelavite",
973            Self::Troll => "troll",
974            Self::Turtle => "turtle",
975            Self::Tyranid => "tyranid",
976            Self::Unicorn => "unicorn",
977            Self::Urzan => "urzan",
978            Self::Vampire => "vampire",
979            Self::Varmint => "varmint",
980            Self::Vedalken => "vedalken",
981            Self::Villain => "villain",
982            Self::Volver => "volver",
983            Self::Wall => "wall",
984            Self::Walrus => "walrus",
985            Self::Warlock => "warlock",
986            Self::Warrior => "warrior",
987            Self::Wasp => "wasp",
988            Self::Weasel => "weasel",
989            Self::Weird => "weird",
990            Self::Werewolf => "werewolf",
991            Self::Whale => "whale",
992            Self::Wizard => "wizard",
993            Self::Wolf => "wolf",
994            Self::Wolverine => "wolverine",
995            Self::Wombat => "wombat",
996            Self::Worm => "worm",
997            Self::Wraith => "wraith",
998            Self::Wurm => "wurm",
999            Self::Yeti => "yeti",
1000            Self::Zombie => "zombie",
1001            Self::Zubera => "zubera",
1002        }
1003    }
1004}
1005
1006impl std::fmt::Display for CreatureType {
1007    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1008        write!(f, "{}", self.as_str())
1009    }
1010}
1011
1012impl CreatureType {
1013    pub fn all() -> impl Iterator<Item = Self> {
1014        [
1015            Self::Advisor,
1016            Self::Aetherborn,
1017            Self::Alien,
1018            Self::Ally,
1019            Self::Angel,
1020            Self::Antelope,
1021            Self::Ape,
1022            Self::Archer,
1023            Self::Archon,
1024            Self::Armadillo,
1025            Self::Army,
1026            Self::Artifact,
1027            Self::Artificer,
1028            Self::Assassin,
1029            Self::AssemblyWorker,
1030            Self::Astartes,
1031            Self::Atog,
1032            Self::Aurochs,
1033            Self::Automaton,
1034            Self::Avatar,
1035            Self::Azra,
1036            Self::Badger,
1037            Self::Balloon,
1038            Self::Barbarian,
1039            Self::Bard,
1040            Self::Basilisk,
1041            Self::Bat,
1042            Self::Bear,
1043            Self::Beast,
1044            Self::Beaver,
1045            Self::Beeble,
1046            Self::Beholder,
1047            Self::Berserker,
1048            Self::Bird,
1049            Self::Bison,
1050            Self::Blinkmoth,
1051            Self::Boar,
1052            Self::Brainiac,
1053            Self::Bringer,
1054            Self::Brushwagg,
1055            Self::Ctan,
1056            Self::Camarid,
1057            Self::Camel,
1058            Self::Capybara,
1059            Self::Caribou,
1060            Self::Carrier,
1061            Self::Cat,
1062            Self::Centaur,
1063            Self::Chicken,
1064            Self::Child,
1065            Self::Chimera,
1066            Self::Citizen,
1067            Self::Cleric,
1068            Self::Clown,
1069            Self::Cockatrice,
1070            Self::Construct,
1071            Self::Coward,
1072            Self::Coyote,
1073            Self::Crab,
1074            Self::Crocodile,
1075            Self::Custodes,
1076            Self::Cyberman,
1077            Self::Cyclops,
1078            Self::Dalek,
1079            Self::Dauthi,
1080            Self::Demigod,
1081            Self::Demon,
1082            Self::Deserter,
1083            Self::Detective,
1084            Self::Devil,
1085            Self::Dinosaur,
1086            Self::Djinn,
1087            Self::Doctor,
1088            Self::Dog,
1089            Self::Dragon,
1090            Self::Drake,
1091            Self::Dreadnought,
1092            Self::Drix,
1093            Self::Drone,
1094            Self::Druid,
1095            Self::Dryad,
1096            Self::Dwarf,
1097            Self::Echidna,
1098            Self::Efreet,
1099            Self::Egg,
1100            Self::Elder,
1101            Self::Eldrazi,
1102            Self::Elemental,
1103            Self::Elephant,
1104            Self::Elf,
1105            Self::Elk,
1106            Self::Employee,
1107            Self::Eye,
1108            Self::Faerie,
1109            Self::Ferret,
1110            Self::Fish,
1111            Self::Flagbearer,
1112            Self::Fox,
1113            Self::Fractal,
1114            Self::Frog,
1115            Self::Fungus,
1116            Self::Gamer,
1117            Self::Gargoyle,
1118            Self::Germ,
1119            Self::Giant,
1120            Self::Gith,
1121            Self::Glimmer,
1122            Self::Gnoll,
1123            Self::Gnome,
1124            Self::Goat,
1125            Self::Goblin,
1126            Self::God,
1127            Self::Golem,
1128            Self::Gorgon,
1129            Self::Graveborn,
1130            Self::Gremlin,
1131            Self::Griffin,
1132            Self::Guest,
1133            Self::Hag,
1134            Self::Halfling,
1135            Self::Hamster,
1136            Self::Harpy,
1137            Self::Head,
1138            Self::Hedgehog,
1139            Self::Hellion,
1140            Self::Hero,
1141            Self::Hippo,
1142            Self::Hippogriff,
1143            Self::Homarid,
1144            Self::Homunculus,
1145            Self::Hornet,
1146            Self::Horror,
1147            Self::Horse,
1148            Self::Human,
1149            Self::Hydra,
1150            Self::Hyena,
1151            Self::Illusion,
1152            Self::Imp,
1153            Self::Incarnation,
1154            Self::Inkling,
1155            Self::Inquisitor,
1156            Self::Insect,
1157            Self::Jackal,
1158            Self::Jellyfish,
1159            Self::Juggernaut,
1160            Self::Kangaroo,
1161            Self::Kavu,
1162            Self::Kirin,
1163            Self::Kithkin,
1164            Self::Knight,
1165            Self::Kobold,
1166            Self::Kor,
1167            Self::Kraken,
1168            Self::Lamia,
1169            Self::Lammasu,
1170            Self::Leech,
1171            Self::Lemur,
1172            Self::Leviathan,
1173            Self::Lhurgoyf,
1174            Self::Licid,
1175            Self::Lizard,
1176            Self::Lobster,
1177            Self::Manticore,
1178            Self::Masticore,
1179            Self::Mercenary,
1180            Self::Merfolk,
1181            Self::Metathran,
1182            Self::Minion,
1183            Self::Minotaur,
1184            Self::Mite,
1185            Self::Mole,
1186            Self::Monger,
1187            Self::Mongoose,
1188            Self::Monk,
1189            Self::Monkey,
1190            Self::Moogle,
1191            Self::Moonfolk,
1192            Self::Mount,
1193            Self::Mouse,
1194            Self::Mutant,
1195            Self::Myr,
1196            Self::Mystic,
1197            Self::Naga,
1198            Self::Nautilus,
1199            Self::Necron,
1200            Self::Nephilim,
1201            Self::Nightmare,
1202            Self::Nightstalker,
1203            Self::Ninja,
1204            Self::Noble,
1205            Self::Noggle,
1206            Self::Nomad,
1207            Self::Nymph,
1208            Self::Octopus,
1209            Self::Ogre,
1210            Self::Ooze,
1211            Self::Orb,
1212            Self::Orc,
1213            Self::Orgg,
1214            Self::Otter,
1215            Self::Ouphe,
1216            Self::Ox,
1217            Self::Oyster,
1218            Self::Pangolin,
1219            Self::Peasant,
1220            Self::Pegasus,
1221            Self::Pentavite,
1222            Self::Performer,
1223            Self::Pest,
1224            Self::Phelddagrif,
1225            Self::Phoenix,
1226            Self::Phyrexian,
1227            Self::Pilot,
1228            Self::Pincher,
1229            Self::Pirate,
1230            Self::Plant,
1231            Self::Porcupine,
1232            Self::Possum,
1233            Self::Praetor,
1234            Self::Primarch,
1235            Self::Prism,
1236            Self::Processor,
1237            Self::Qu,
1238            Self::Rabbit,
1239            Self::Raccoon,
1240            Self::Ranger,
1241            Self::Rat,
1242            Self::Rebel,
1243            Self::Reflection,
1244            Self::Reveler,
1245            Self::Rhino,
1246            Self::Rigger,
1247            Self::Robot,
1248            Self::Rogue,
1249            Self::Rukh,
1250            Self::Sable,
1251            Self::Salamander,
1252            Self::Samurai,
1253            Self::Sand,
1254            Self::Saproling,
1255            Self::Satyr,
1256            Self::Scarecrow,
1257            Self::Scientist,
1258            Self::Scion,
1259            Self::Scorpion,
1260            Self::Scout,
1261            Self::Sculpture,
1262            Self::Seal,
1263            Self::Serf,
1264            Self::Serpent,
1265            Self::Servo,
1266            Self::Shade,
1267            Self::Shaman,
1268            Self::Shapeshifter,
1269            Self::Shark,
1270            Self::Sheep,
1271            Self::Siren,
1272            Self::Skeleton,
1273            Self::Skunk,
1274            Self::Slith,
1275            Self::Sliver,
1276            Self::Sloth,
1277            Self::Slug,
1278            Self::Snail,
1279            Self::Snake,
1280            Self::Soldier,
1281            Self::Soltari,
1282            Self::Sorcerer,
1283            Self::Spawn,
1284            Self::Specter,
1285            Self::Spellshaper,
1286            Self::Sphinx,
1287            Self::Spider,
1288            Self::Spike,
1289            Self::Spirit,
1290            Self::Splinter,
1291            Self::Sponge,
1292            Self::Spy,
1293            Self::Squid,
1294            Self::Squirrel,
1295            Self::Starfish,
1296            Self::Surrakar,
1297            Self::Survivor,
1298            Self::Symbiote,
1299            Self::Synth,
1300            Self::Teddy,
1301            Self::Tentacle,
1302            Self::Tetravite,
1303            Self::Thalakos,
1304            Self::Thopter,
1305            Self::Thrull,
1306            Self::Tiefling,
1307            Self::TimeLord,
1308            Self::Toy,
1309            Self::Treefolk,
1310            Self::Trilobite,
1311            Self::Triskelavite,
1312            Self::Troll,
1313            Self::Turtle,
1314            Self::Tyranid,
1315            Self::Unicorn,
1316            Self::Urzan,
1317            Self::Vampire,
1318            Self::Varmint,
1319            Self::Vedalken,
1320            Self::Villain,
1321            Self::Volver,
1322            Self::Wall,
1323            Self::Walrus,
1324            Self::Warlock,
1325            Self::Warrior,
1326            Self::Wasp,
1327            Self::Weasel,
1328            Self::Weird,
1329            Self::Werewolf,
1330            Self::Whale,
1331            Self::Wizard,
1332            Self::Wolf,
1333            Self::Wolverine,
1334            Self::Wombat,
1335            Self::Worm,
1336            Self::Wraith,
1337            Self::Wurm,
1338            Self::Yeti,
1339            Self::Zombie,
1340            Self::Zubera,
1341        ].into_iter()
1342    }
1343}