Skip to main content

names_generator2/
lib.rs

1const ADJECTIVES: &[&str] = &[
2    "absurd",
3    "accommodating",
4    "accomplished",
5    "acrobatic",
6    "active",
7    "adamant",
8    "adaptable",
9    "adept",
10    "admirable",
11    "admiring",
12    "adorable",
13    "adoring",
14    "adventurous",
15    "affable",
16    "affectionate",
17    "agile",
18    "agitated",
19    "agreeable",
20    "alert",
21    "alluring",
22    "aloof",
23    "amazing",
24    "ambitious",
25    "amiable",
26    "amicable",
27    "amorous",
28    "amused",
29    "amusing",
30    "animated",
31    "anxious",
32    "apologetic",
33    "appreciative",
34    "ardent",
35    "argumentative",
36    "arrogant",
37    "artful",
38    "articulate",
39    "artistic",
40    "assertive",
41    "astonished",
42    "astounding",
43    "astute",
44    "athletic",
45    "atomic",
46    "attentive",
47    "audacious",
48    "authentic",
49    "avid",
50    "awesome",
51    "awkward",
52    "azure",
53    "babbling",
54    "baffled",
55    "baking",
56    "ballooning",
57    "balmy",
58    "bashful",
59    "beaming",
60    "bearded",
61    "beautiful",
62    "beguiling",
63    "belligerent",
64    "beloved",
65    "benevolent",
66    "bewildered",
67    "bickering",
68    "bionic",
69    "bizarre",
70    "blinking",
71    "blissful",
72    "blushing",
73    "boastful",
74    "bohemian",
75    "boisterous",
76    "bold",
77    "bombastic",
78    "bonkers",
79    "bossy",
80    "bouncy",
81    "bountiful",
82    "bowling",
83    "brainy",
84    "brash",
85    "brave",
86    "brazen",
87    "breathless",
88    "breezy",
89    "bright",
90    "brilliant",
91    "brisk",
92    "bubbly",
93    "bulky",
94    "bumbling",
95    "buoyant",
96    "bushy",
97    "busy",
98    "cackling",
99    "caffeinated",
100    "calm",
101    "candid",
102    "capable",
103    "capricious",
104    "captivating",
105    "carefree",
106    "careful",
107    "caring",
108    "casual",
109    "cautious",
110    "cavalier",
111    "celebrated",
112    "cerebral",
113    "chaotic",
114    "charismatic",
115    "charming",
116    "chattering",
117    "chatty",
118    "cheeky",
119    "cheerful",
120    "cheery",
121    "cheesy",
122    "chic",
123    "chilly",
124    "chipper",
125    "chivalrous",
126    "chubby",
127    "chuckling",
128    "chunky",
129    "civil",
130    "clapping",
131    "classy",
132    "clever",
133    "clingy",
134    "cloudy",
135    "clueless",
136    "clumsy",
137    "cocky",
138    "collected",
139    "colorful",
140    "comfy",
141    "comical",
142    "commanding",
143    "compassionate",
144    "composed",
145    "conceited",
146    "confident",
147    "confounded",
148    "confused",
149    "congenial",
150    "conscientious",
151    "considerate",
152    "contemplative",
153    "content",
154    "contrary",
155    "cool",
156    "cordial",
157    "cosmic",
158    "courageous",
159    "courteous",
160    "covert",
161    "coy",
162    "cozy",
163    "crackpot",
164    "crafty",
165    "cranky",
166    "crazy",
167    "creative",
168    "crimson",
169    "crowned",
170    "crusty",
171    "cryptic",
172    "cuddly",
173    "cultured",
174    "cunning",
175    "curious",
176    "cute",
177    "cynical",
178    "daffy",
179    "dainty",
180    "dancing",
181    "dandy",
182    "dapper",
183    "daring",
184    "dashing",
185    "dauntless",
186    "daydreaming",
187    "dazed",
188    "dazzling",
189    "decisive",
190    "dedicated",
191    "defiant",
192    "deft",
193    "delighted",
194    "delightful",
195    "delirious",
196    "demure",
197    "dependable",
198    "determined",
199    "devilish",
200    "devious",
201    "devoted",
202    "diabolical",
203    "dignified",
204    "diligent",
205    "diplomatic",
206    "discerning",
207    "disciplined",
208    "discreet",
209    "disgruntled",
210    "disheveled",
211    "dismayed",
212    "distracted",
213    "dizzy",
214    "docile",
215    "dogged",
216    "doodling",
217    "dopey",
218    "doting",
219    "dotty",
220    "dozing",
221    "dramatic",
222    "dreamy",
223    "droopy",
224    "drowsy",
225    "dubious",
226    "dusty",
227    "dutiful",
228    "dynamic",
229    "eager",
230    "earnest",
231    "easygoing",
232    "eccentric",
233    "ecstatic",
234    "edgy",
235    "effervescent",
236    "efficient",
237    "egotistical",
238    "elaborate",
239    "elastic",
240    "elated",
241    "electric",
242    "elegant",
243    "eloquent",
244    "elusive",
245    "embarrassed",
246    "eminent",
247    "emotional",
248    "empathetic",
249    "enamored",
250    "enchanted",
251    "encouraging",
252    "endearing",
253    "energetic",
254    "energized",
255    "engaging",
256    "enigmatic",
257    "enlightened",
258    "enterprising",
259    "entertaining",
260    "enthusiastic",
261    "envious",
262    "epic",
263    "esteemed",
264    "ethereal",
265    "euphoric",
266    "evasive",
267    "exasperated",
268    "excitable",
269    "excited",
270    "exotic",
271    "expert",
272    "expressive",
273    "exquisite",
274    "extravagant",
275    "exuberant",
276    "fabled",
277    "fabulous",
278    "facetious",
279    "fair",
280    "faithful",
281    "famous",
282    "fanciful",
283    "fancy",
284    "fantastic",
285    "fascinated",
286    "fashionable",
287    "fastidious",
288    "fearless",
289    "fearsome",
290    "feathered",
291    "feisty",
292    "feral",
293    "ferocious",
294    "fervent",
295    "festive",
296    "fickle",
297    "fierce",
298    "fiery",
299    "firm",
300    "fishing",
301    "flabbergasted",
302    "flaky",
303    "flamboyant",
304    "flappy",
305    "flashy",
306    "flawless",
307    "flippant",
308    "floppy",
309    "flourishing",
310    "fluent",
311    "fluffy",
312    "flushed",
313    "flustered",
314    "fluttering",
315    "focused",
316    "fond",
317    "foolish",
318    "forgetful",
319    "forgiving",
320    "formal",
321    "formidable",
322    "forthright",
323    "fortunate",
324    "frank",
325    "frantic",
326    "freaky",
327    "frenzied",
328    "fresh",
329    "friendly",
330    "frightened",
331    "frilly",
332    "frisky",
333    "frivolous",
334    "frizzy",
335    "frosty",
336    "frugal",
337    "fruity",
338    "fuming",
339    "funky",
340    "funny",
341    "furious",
342    "furry",
343    "fussy",
344    "futuristic",
345    "fuzzy",
346    "gabby",
347    "galactic",
348    "gallant",
349    "gardening",
350    "gaudy",
351    "genial",
352    "genteel",
353    "gentle",
354    "genuine",
355    "ghostly",
356    "giddy",
357    "gifted",
358    "gigantic",
359    "giggling",
360    "gilded",
361    "glad",
362    "glamorous",
363    "gleaming",
364    "glib",
365    "glistening",
366    "glittering",
367    "glittery",
368    "gloomy",
369    "glorious",
370    "glossy",
371    "glowing",
372    "gnarly",
373    "gobsmacked",
374    "golden",
375    "good",
376    "goofy",
377    "gorgeous",
378    "gossiping",
379    "graceful",
380    "gracious",
381    "grand",
382    "grandiose",
383    "grateful",
384    "greedy",
385    "gregarious",
386    "grinning",
387    "gritty",
388    "groggy",
389    "groovy",
390    "grouchy",
391    "grubby",
392    "gruff",
393    "grumbling",
394    "grumpy",
395    "guarded",
396    "gullible",
397    "gushing",
398    "gusty",
399    "gutsy",
400    "haggard",
401    "hairy",
402    "handsome",
403    "handy",
404    "hapless",
405    "happy",
406    "hardworking",
407    "hardy",
408    "harmonious",
409    "hasty",
410    "haughty",
411    "hearty",
412    "heavenly",
413    "hectic",
414    "hefty",
415    "helpful",
416    "heroic",
417    "hesitant",
418    "hilarious",
419    "hollering",
420    "honest",
421    "honorable",
422    "hopeful",
423    "hopping",
424    "hospitable",
425    "humble",
426    "humming",
427    "humorous",
428    "hungry",
429    "hurried",
430    "hushed",
431    "hyper",
432    "hypnotic",
433    "hysterical",
434    "icy",
435    "idealistic",
436    "idle",
437    "illustrious",
438    "imaginative",
439    "immaculate",
440    "immense",
441    "impartial",
442    "impatient",
443    "impeccable",
444    "imperious",
445    "impetuous",
446    "impressive",
447    "impulsive",
448    "incredible",
449    "indignant",
450    "indomitable",
451    "industrious",
452    "ingenious",
453    "innocent",
454    "innovative",
455    "inquisitive",
456    "insightful",
457    "insistent",
458    "inspired",
459    "intense",
460    "intrepid",
461    "intrigued",
462    "intuitive",
463    "inventive",
464    "invincible",
465    "irate",
466    "irresistible",
467    "irreverent",
468    "itchy",
469    "jaded",
470    "jaunty",
471    "jazzy",
472    "jealous",
473    "jittery",
474    "jogging",
475    "jolly",
476    "jovial",
477    "joyful",
478    "joyous",
479    "jubilant",
480    "judicious",
481    "juggling",
482    "jumbo",
483    "jumpy",
484    "keen",
485    "kind",
486    "kindly",
487    "knitting",
488    "knowing",
489    "knowledgeable",
490    "kooky",
491    "languid",
492    "lanky",
493    "laughing",
494    "lavish",
495    "lawful",
496    "lazy",
497    "leaping",
498    "learned",
499    "legendary",
500    "leisurely",
501    "lethargic",
502    "lighthearted",
503    "likable",
504    "listless",
505    "literate",
506    "lively",
507    "lofty",
508    "lonely",
509    "lonesome",
510    "loony",
511    "loopy",
512    "loud",
513    "lounging",
514    "lovable",
515    "loving",
516    "loyal",
517    "lucid",
518    "lucky",
519    "ludicrous",
520    "lumbering",
521    "luminous",
522    "lumpy",
523    "lurking",
524    "lustrous",
525    "magical",
526    "magnanimous",
527    "magnetic",
528    "magnificent",
529    "majestic",
530    "marching",
531    "marvelous",
532    "masterful",
533    "meandering",
534    "meditating",
535    "meditative",
536    "meek",
537    "melancholy",
538    "mellow",
539    "melodramatic",
540    "memorable",
541    "menacing",
542    "merciful",
543    "merry",
544    "mesmerizing",
545    "messy",
546    "meticulous",
547    "mighty",
548    "mindful",
549    "miniature",
550    "mischievous",
551    "misty",
552    "modern",
553    "modest",
554    "momentous",
555    "monstrous",
556    "moody",
557    "motivated",
558    "mournful",
559    "muddled",
560    "muddy",
561    "muffled",
562    "mumbling",
563    "munching",
564    "mundane",
565    "muscular",
566    "musical",
567    "musing",
568    "muttering",
569    "mysterious",
570    "mystical",
571    "mythical",
572    "naive",
573    "napping",
574    "natty",
575    "naughty",
576    "nautical",
577    "neat",
578    "needy",
579    "nerdy",
580    "nervous",
581    "neurotic",
582    "nibbling",
583    "nifty",
584    "nimble",
585    "noble",
586    "nocturnal",
587    "noisy",
588    "nomadic",
589    "nonchalant",
590    "nostalgic",
591    "nosy",
592    "notable",
593    "notorious",
594    "nurturing",
595    "nutty",
596    "obedient",
597    "obliging",
598    "oblivious",
599    "obnoxious",
600    "observant",
601    "obsessive",
602    "obstinate",
603    "odd",
604    "offbeat",
605    "omnipotent",
606    "opinionated",
607    "optimistic",
608    "opulent",
609    "orderly",
610    "organized",
611    "ornate",
612    "outgoing",
613    "outlandish",
614    "outspoken",
615    "overjoyed",
616    "overwhelmed",
617    "overzealous",
618    "painstaking",
619    "panicky",
620    "paranoid",
621    "parched",
622    "passionate",
623    "patient",
624    "peaceful",
625    "peculiar",
626    "pensive",
627    "peppy",
628    "perfect",
629    "perky",
630    "perplexed",
631    "persistent",
632    "persuasive",
633    "pert",
634    "perturbed",
635    "petite",
636    "petulant",
637    "philosophical",
638    "picky",
639    "pious",
640    "placid",
641    "playful",
642    "pleasant",
643    "pleased",
644    "plotting",
645    "plucky",
646    "plump",
647    "poetic",
648    "poised",
649    "polished",
650    "polite",
651    "pompous",
652    "pondering",
653    "popular",
654    "posh",
655    "positive",
656    "pouting",
657    "powerful",
658    "pragmatic",
659    "prancing",
660    "precious",
661    "precise",
662    "prestigious",
663    "pretentious",
664    "pretty",
665    "prickly",
666    "prim",
667    "primal",
668    "princely",
669    "prodigious",
670    "productive",
671    "profound",
672    "prolific",
673    "prominent",
674    "prompt",
675    "proper",
676    "prosperous",
677    "protective",
678    "proud",
679    "prudent",
680    "puffy",
681    "punctual",
682    "pungent",
683    "puny",
684    "purple",
685    "purring",
686    "pushy",
687    "puzzled",
688    "quaint",
689    "qualified",
690    "quantum",
691    "queasy",
692    "quick",
693    "quiet",
694    "quirky",
695    "quivering",
696    "radiant",
697    "radioactive",
698    "ragged",
699    "rambling",
700    "rampaging",
701    "rare",
702    "raspy",
703    "rattled",
704    "raucous",
705    "ravenous",
706    "rebellious",
707    "reckless",
708    "refined",
709    "regal",
710    "relaxed",
711    "reliable",
712    "reluctant",
713    "remarkable",
714    "renowned",
715    "reserved",
716    "resilient",
717    "resolute",
718    "resourceful",
719    "respectable",
720    "resplendent",
721    "responsible",
722    "restless",
723    "retired",
724    "revered",
725    "rhythmic",
726    "ridiculous",
727    "righteous",
728    "riotous",
729    "robotic",
730    "robust",
731    "romantic",
732    "rosy",
733    "rousing",
734    "rowdy",
735    "ruffled",
736    "rugged",
737    "rustic",
738    "sailing",
739    "saintly",
740    "salty",
741    "sanguine",
742    "sarcastic",
743    "sardonic",
744    "sassy",
745    "satisfied",
746    "saucy",
747    "savvy",
748    "scarlet",
749    "scheming",
750    "scholarly",
751    "scintillating",
752    "scrappy",
753    "scrawny",
754    "scruffy",
755    "scrumptious",
756    "scurrying",
757    "secretive",
758    "sedate",
759    "selfless",
760    "sensational",
761    "sensible",
762    "sensitive",
763    "sentimental",
764    "serene",
765    "serious",
766    "shabby",
767    "shaggy",
768    "shaky",
769    "shimmering",
770    "shiny",
771    "shivering",
772    "shocked",
773    "showy",
774    "shrewd",
775    "shrill",
776    "shuffling",
777    "shy",
778    "silly",
779    "silver",
780    "sincere",
781    "singing",
782    "sizzling",
783    "skateboarding",
784    "skating",
785    "skeptical",
786    "skiing",
787    "skillful",
788    "skipping",
789    "skittish",
790    "skydiving",
791    "sleek",
792    "sleepwalking",
793    "sleepy",
794    "slender",
795    "slick",
796    "slimy",
797    "slinky",
798    "slippery",
799    "sloppy",
800    "sluggish",
801    "smart",
802    "smiling",
803    "smirking",
804    "smooth",
805    "smug",
806    "snacking",
807    "snappy",
808    "snarky",
809    "snarling",
810    "snazzy",
811    "sneaky",
812    "sneezing",
813    "sniffing",
814    "snobbish",
815    "snooty",
816    "snoring",
817    "snorkeling",
818    "snorting",
819    "snug",
820    "sober",
821    "sociable",
822    "soft",
823    "soggy",
824    "solemn",
825    "somber",
826    "soothing",
827    "sophisticated",
828    "sparkling",
829    "sparkly",
830    "speckled",
831    "spectacular",
832    "speechless",
833    "speedy",
834    "spellbound",
835    "spicy",
836    "spiky",
837    "spinning",
838    "spirited",
839    "splendid",
840    "spontaneous",
841    "sporty",
842    "spotless",
843    "spotted",
844    "spotty",
845    "sprawling",
846    "spry",
847    "spunky",
848    "squabbling",
849    "squeaky",
850    "squealing",
851    "squinting",
852    "squishy",
853    "startled",
854    "stately",
855    "staunch",
856    "steadfast",
857    "stealthy",
858    "sticky",
859    "stinky",
860    "stocky",
861    "stoic",
862    "stomping",
863    "stormy",
864    "stout",
865    "strange",
866    "strapping",
867    "striking",
868    "striped",
869    "strolling",
870    "strutting",
871    "stubborn",
872    "studious",
873    "stunning",
874    "sturdy",
875    "stylish",
876    "suave",
877    "subtle",
878    "successful",
879    "sunbathing",
880    "sunny",
881    "superb",
882    "supersonic",
883    "supreme",
884    "surfing",
885    "surly",
886    "surprised",
887    "suspicious",
888    "swanky",
889    "swaying",
890    "sweaty",
891    "sweet",
892    "swift",
893    "swimming",
894    "sympathetic",
895    "tactful",
896    "talented",
897    "talkative",
898    "tame",
899    "tangled",
900    "tardy",
901    "tasteful",
902    "tattered",
903    "tearful",
904    "tedious",
905    "teeny",
906    "teetering",
907    "temperamental",
908    "tenacious",
909    "tender",
910    "tense",
911    "terrific",
912    "testy",
913    "thankful",
914    "theatrical",
915    "thirsty",
916    "thoughtful",
917    "thrifty",
918    "thrilled",
919    "thundering",
920    "ticklish",
921    "tidy",
922    "timid",
923    "tinkering",
924    "tiny",
925    "tired",
926    "tireless",
927    "tolerant",
928    "touchy",
929    "tough",
930    "tranquil",
931    "trembling",
932    "tremendous",
933    "trendy",
934    "tricky",
935    "trim",
936    "triumphant",
937    "trotting",
938    "trusting",
939    "trustworthy",
940    "truthful",
941    "tubby",
942    "tumbling",
943    "turbocharged",
944    "turbulent",
945    "twinkling",
946    "twirling",
947    "twitchy",
948    "ultimate",
949    "unassuming",
950    "unbeatable",
951    "uncanny",
952    "undaunted",
953    "understanding",
954    "unflinching",
955    "unique",
956    "unkempt",
957    "unlucky",
958    "unpredictable",
959    "unstoppable",
960    "upbeat",
961    "useful",
962    "vacant",
963    "vain",
964    "valiant",
965    "velvety",
966    "venerable",
967    "versatile",
968    "vexed",
969    "vibrant",
970    "victorious",
971    "vigilant",
972    "vigorous",
973    "villainous",
974    "virtuous",
975    "visionary",
976    "vivacious",
977    "vocal",
978    "volatile",
979    "voracious",
980    "wacky",
981    "wailing",
982    "wandering",
983    "wary",
984    "wayward",
985    "wealthy",
986    "weary",
987    "weird",
988    "welcoming",
989    "wheezing",
990    "whimsical",
991    "whiny",
992    "whirling",
993    "whispering",
994    "whistling",
995    "wholesome",
996    "wicked",
997    "wiggling",
998    "wild",
999    "willful",
1000    "wily",
1001    "winged",
1002    "winking",
1003    "wintry",
1004    "wiry",
1005    "wise",
1006    "wistful",
1007    "withdrawn",
1008    "witty",
1009    "wobbling",
1010    "wobbly",
1011    "woeful",
1012    "wonderful",
1013    "wondering",
1014    "wondrous",
1015    "woolly",
1016    "wordy",
1017    "worldly",
1018    "worried",
1019    "worthy",
1020    "yawning",
1021    "yearning",
1022    "young",
1023    "youthful",
1024    "zany",
1025    "zealous",
1026    "zen",
1027    "zippy",
1028];
1029
1030const ANIMALS: &[&str] = &[
1031    "abalone",
1032    "adder",
1033    "adjutant",
1034    "albatross",
1035    "alligator",
1036    "alpaca",
1037    "anaconda",
1038    "anchovy",
1039    "anemone",
1040    "ant",
1041    "antelope",
1042    "armadillo",
1043    "baboon",
1044    "badger",
1045    "bandicoot",
1046    "barnacle",
1047    "barracuda",
1048    "bass",
1049    "bat",
1050    "beagle",
1051    "bear",
1052    "beaver",
1053    "bee",
1054    "beetle",
1055    "beluga",
1056    "betta",
1057    "bison",
1058    "blackbird",
1059    "bloodhound",
1060    "bluebird",
1061    "boa",
1062    "boar",
1063    "bobcat",
1064    "bongo",
1065    "bonito",
1066    "bream",
1067    "buffalo",
1068    "bull",
1069    "bulldog",
1070    "bullock",
1071    "bumblebee",
1072    "bunny",
1073    "bunting",
1074    "butterfly",
1075    "buzzard",
1076    "calf",
1077    "camel",
1078    "canary",
1079    "cardinal",
1080    "caribou",
1081    "carp",
1082    "cat",
1083    "caterpillar",
1084    "catfish",
1085    "centipede",
1086    "chameleon",
1087    "cheetah",
1088    "chick",
1089    "chicken",
1090    "chihuahua",
1091    "chimpanzee",
1092    "chinchilla",
1093    "chipmunk",
1094    "chow",
1095    "chub",
1096    "clam",
1097    "cobra",
1098    "cockatoo",
1099    "cockroach",
1100    "cod",
1101    "collie",
1102    "colt",
1103    "conch",
1104    "condor",
1105    "coot",
1106    "coral",
1107    "corgi",
1108    "cougar",
1109    "cow",
1110    "coyote",
1111    "crab",
1112    "crane",
1113    "crawfish",
1114    "crayfish",
1115    "cricket",
1116    "crocodile",
1117    "crow",
1118    "cub",
1119    "cuckoo",
1120    "cuttlefish",
1121    "dachshund",
1122    "dalmatian",
1123    "deer",
1124    "dingo",
1125    "dipper",
1126    "doberman",
1127    "dodo",
1128    "dog",
1129    "dolphin",
1130    "donkey",
1131    "dorado",
1132    "dove",
1133    "dragonfly",
1134    "drake",
1135    "duck",
1136    "duckling",
1137    "eagle",
1138    "eel",
1139    "elephant",
1140    "elk",
1141    "emu",
1142    "ewe",
1143    "falcon",
1144    "fawn",
1145    "ferret",
1146    "filly",
1147    "finch",
1148    "firefly",
1149    "fisher",
1150    "flamingo",
1151    "flea",
1152    "flounder",
1153    "fly",
1154    "foal",
1155    "fossa",
1156    "fox",
1157    "frog",
1158    "gander",
1159    "gar",
1160    "gazelle",
1161    "gecko",
1162    "gibbon",
1163    "giraffe",
1164    "gnu",
1165    "goat",
1166    "goldfish",
1167    "goose",
1168    "gopher",
1169    "gorilla",
1170    "gosling",
1171    "grasshopper",
1172    "grayling",
1173    "grenadier",
1174    "greyhound",
1175    "grouper",
1176    "grouse",
1177    "gull",
1178    "haddock",
1179    "halibut",
1180    "hammerhead",
1181    "hamster",
1182    "hare",
1183    "harrier",
1184    "hawk",
1185    "hedgehog",
1186    "heifer",
1187    "hen",
1188    "heron",
1189    "herring",
1190    "hippo",
1191    "hippopotamus",
1192    "hog",
1193    "honeybee",
1194    "hornet",
1195    "horse",
1196    "hummingbird",
1197    "humpback",
1198    "husky",
1199    "hyena",
1200    "ibis",
1201    "iguana",
1202    "impala",
1203    "jackal",
1204    "jaguar",
1205    "jay",
1206    "jellyfish",
1207    "joey",
1208    "kaka",
1209    "kangaroo",
1210    "kea",
1211    "kingfisher",
1212    "kite",
1213    "kitten",
1214    "kiwi",
1215    "koala",
1216    "koi",
1217    "krill",
1218    "ladybird",
1219    "ladybug",
1220    "lamb",
1221    "lark",
1222    "leech",
1223    "lemur",
1224    "leopard",
1225    "lion",
1226    "lizard",
1227    "llama",
1228    "lobster",
1229    "locust",
1230    "loon",
1231    "lynx",
1232    "mackerel",
1233    "magpie",
1234    "mako",
1235    "mallard",
1236    "mamba",
1237    "mammoth",
1238    "manatee",
1239    "manta",
1240    "mantis",
1241    "manx",
1242    "mara",
1243    "mare",
1244    "marlin",
1245    "marten",
1246    "martin",
1247    "mastiff",
1248    "mastodon",
1249    "merlin",
1250    "mink",
1251    "minnow",
1252    "mite",
1253    "mockingbird",
1254    "mole",
1255    "molly",
1256    "mongoose",
1257    "monkey",
1258    "moose",
1259    "mosquito",
1260    "moth",
1261    "mouse",
1262    "mule",
1263    "mullet",
1264    "mussel",
1265    "mustang",
1266    "nautilus",
1267    "newt",
1268    "nighthawk",
1269    "nightingale",
1270    "octopus",
1271    "orangutan",
1272    "orca",
1273    "oryx",
1274    "osprey",
1275    "ostrich",
1276    "otter",
1277    "owl",
1278    "ox",
1279    "oyster",
1280    "panda",
1281    "panther",
1282    "papillon",
1283    "parrot",
1284    "partridge",
1285    "peacock",
1286    "pelican",
1287    "penguin",
1288    "perch",
1289    "peregrine",
1290    "pheasant",
1291    "phoebe",
1292    "pig",
1293    "pigeon",
1294    "piglet",
1295    "pika",
1296    "pike",
1297    "piranha",
1298    "platypus",
1299    "plover",
1300    "pollack",
1301    "pollock",
1302    "pomeranian",
1303    "pony",
1304    "poodle",
1305    "porcupine",
1306    "porpoise",
1307    "possum",
1308    "prawn",
1309    "puffin",
1310    "pug",
1311    "puma",
1312    "puppy",
1313    "python",
1314    "quail",
1315    "rabbit",
1316    "raccoon",
1317    "rail",
1318    "ram",
1319    "rat",
1320    "rattlesnake",
1321    "raven",
1322    "reindeer",
1323    "retriever",
1324    "rhea",
1325    "rhino",
1326    "rhinoceros",
1327    "robin",
1328    "rook",
1329    "rooster",
1330    "rottweiler",
1331    "ruff",
1332    "sable",
1333    "salamander",
1334    "salmon",
1335    "sardine",
1336    "scallop",
1337    "scorpion",
1338    "screamer",
1339    "seagull",
1340    "seahorse",
1341    "seal",
1342    "shad",
1343    "shark",
1344    "sheep",
1345    "shrew",
1346    "shrimp",
1347    "skate",
1348    "skunk",
1349    "sloth",
1350    "slug",
1351    "smelt",
1352    "snail",
1353    "snake",
1354    "snapper",
1355    "snipe",
1356    "sole",
1357    "sow",
1358    "spaniel",
1359    "sparrow",
1360    "spider",
1361    "sponge",
1362    "springbok",
1363    "squid",
1364    "squirrel",
1365    "stallion",
1366    "starfish",
1367    "starling",
1368    "steer",
1369    "stingray",
1370    "stork",
1371    "sturgeon",
1372    "swallow",
1373    "swan",
1374    "swift",
1375    "swine",
1376    "swordfish",
1377    "tabby",
1378    "tadpole",
1379    "takin",
1380    "tapeworm",
1381    "tarantula",
1382    "teal",
1383    "termite",
1384    "tern",
1385    "terrier",
1386    "tetra",
1387    "thrasher",
1388    "thrush",
1389    "tiger",
1390    "tilapia",
1391    "toad",
1392    "tomcat",
1393    "tortoise",
1394    "trout",
1395    "trumpeter",
1396    "tui",
1397    "tuna",
1398    "turkey",
1399    "turtle",
1400    "urchin",
1401    "viper",
1402    "vole",
1403    "vulture",
1404    "wahoo",
1405    "wallaby",
1406    "walleye",
1407    "walrus",
1408    "warbler",
1409    "wasp",
1410    "weasel",
1411    "weevil",
1412    "whale",
1413    "wildebeest",
1414    "wolf",
1415    "wolverine",
1416    "wombat",
1417    "woodcock",
1418    "woodpecker",
1419    "worm",
1420    "wren",
1421    "yak",
1422    "zander",
1423    "zebra",
1424];
1425
1426/// Generates a random name from the list of adjectives and animals in this crate
1427/// formatted as "adjective-animal-{3-digit-random-number}".
1428pub fn get_random(mut rng: impl rand_core::Rng) -> String {
1429    let num = rng.next_u64() % 1000;
1430    let adj = ADJECTIVES[(rng.next_u64() % ADJECTIVES.len() as u64) as usize];
1431    let animal = ANIMALS[(rng.next_u64() % ANIMALS.len() as u64) as usize];
1432
1433    format!("{adj}-{animal}-{:03}", num)
1434}
1435
1436#[cfg(test)]
1437mod tests {
1438    use std::collections::HashSet;
1439
1440    use rand::rng;
1441
1442    use super::*;
1443
1444    #[test]
1445    fn test_ends_with_three_digit_num() {
1446        let mut rng = rng();
1447        let name = get_random(&mut rng);
1448
1449        assert_eq!(name.split('-').count(), 3);
1450        assert_eq!(name.split('-').next_back().unwrap().len(), 3);
1451    }
1452
1453    #[test]
1454    fn test_at_least_400_million_combinations() {
1455        let combinations = ADJECTIVES.len() * ANIMALS.len() * 1000;
1456        assert!(
1457            combinations >= 400_000_000,
1458            "only {combinations} combinations"
1459        );
1460    }
1461
1462    #[test]
1463    fn test_words_are_unique_lowercase_letters() {
1464        for list in [ADJECTIVES, ANIMALS] {
1465            assert_eq!(list.iter().collect::<HashSet<_>>().len(), list.len());
1466            assert!(
1467                list.iter()
1468                    .all(|w| !w.is_empty() && w.bytes().all(|b| b.is_ascii_lowercase()))
1469            );
1470        }
1471    }
1472}