1use crate::base::sample;
4use crate::locale::fetch_locale;
5
6pub fn name() -> String {
8 fetch_locale("funny_name.names", "en")
9 .map(|v| sample(&v))
10 .unwrap_or_else(|| sample(FALLBACK_NAMES).to_string())
11}
12
13const FALLBACK_NAMES: &[&str] = &[
15 "Al B. Zien", "Al Coholic", "Al Kaseltzer", "Al Looya", "Amanda B. Recondwith",
16 "Amanda Hugenkiss", "Amanda Lynn", "Anita Bath", "Anita Job", "Anita Knapp",
17 "Barb Dwyer", "Barry D'Alive", "Barry McCociner", "Ben Dover", "Ben O. Verbich",
18 "Bill Ding", "Bill Loney", "Bjorn Free", "Bo D'Lyn", "Bob Frapples",
19 "Brooke Trout", "Bud Jet", "Cara Van", "Chris P. Bacon", "Claire Voyant",
20 "Cole Kutz", "Curt N. Call", "Dee Kay", "Dee Liver", "Dinah Might",
21 "Don Keigh", "Dusty Rhodes", "E. Ville", "Eileen Dover", "Eli Ondefloor",
22 "Estelle Hertz", "Faye Kinnit", "Faye Slift", "Faye Tallity", "Ferris Wheeler",
23 "Gabe Asher", "Gene Poole", "Ginger Vitis", "Hal Jalikakick", "Hammond Eggs",
24 "Hare Brain", "Harry Pitts", "Hein Noon", "Hellen Back", "Hellen Earth",
25 "Herbie Hind", "Holly Day", "Hope Ferterbest", "Howie Doohan", "Hugh Jass",
26 "Hugh Jorgan", "Hugh Mungus", "I. P. Freely", "I. Yellalot", "Ima Hogg",
27 "Iona Ford", "Iona Frisbee", "Ivana Tinkle", "Jack Pott", "Jane Plain",
28 "Jed I. Knight", "Jim Nasium", "Jo King", "Joe King", "Joy Rider",
29 "Justin Case", "Justin Credible", "Justin Time", "Kandi Apple", "Kat Lick",
30 "Kenny Dewitt", "Kenny Penny", "Kenny U. Putt", "Lance Boyle", "Laura Norder",
31 "Leigh King", "Lesa War", "Lily Pond", "Lisa Carr", "Lisa Ford",
32 "Lou Briccant", "Lou Stooth", "M. T. Glass", "Mabel Syrup", "Manny Kinn",
33 "Marsha Mellow", "Mary Achu", "Mary Christmas", "Mel Lo", "Mike Easter",
34 "Mike Oxlong", "Mike Rotch", "Milly Graham", "Missy Sippy", "Misty C. Shore",
35 "Mona Lott", "Muffin Man", "Neil Down", "Olive Green", "Olive Yew",
36 "Ollie Tabooger", "Otto B. Kilt", "Otto B. Kool", "Otto B. Kute", "Otto B. Kind",
37 "Paige Turner", "Peanut Buster", "Pearl E. White", "Penny Lane", "Penny Lope",
38 "Phil A. Delphia", "Phil O. Dendron", "Phil O. Sopher", "Phil Updegraff",
39 "Polly Esther", "Rick O'Shea", "Rita Book", "Rita Story", "Rocco Z. Disburse",
40 "Rocky Beach", "Roman Holiday", "Rose Bush", "Rose Gardner", "Russell Ingleaves",
41 "Rusty Bedsprings", "Rusty Blades", "Rusty Carr", "Rusty Dorr", "Rusty Fender",
42 "Rusty Keys", "Rusty Nails", "Rusty Pipes", "Rusty Steele", "Sally Forth",
43 "Sandy Banks", "Sandy Beech", "Sandy Spring", "Sarah Bellum", "Seymour Butts",
44 "Shandy Lear", "Sharon F. Doorcell", "Sharon Needles", "Sheila Blige",
45 "Sheri Cola", "Skip Roper", "Stan Still", "Stu Pitt", "Sue Case",
46 "Sue Flay", "Sue Ridge", "Sue Shi", "Sue Veneer", "Tad Moore",
47 "Tara Misu", "Ted E. Baer", "Terry Aki", "Terry Bull", "Terry Dactyl",
48 "Tess Tickle", "Tim Burr", "Tom A. Toe", "Tom Morrow", "Tommy Hawk",
49 "Tracy Serpentine", "U. P. Freehly", "U. R. Nice", "Vlad Tire", "Wanda Rinn",
50 "Warren Piece", "Wendy Day", "Will Power", "Willie Makit", "Willie Wait",
51 "X. Benedict", "Xavier Breth", "Xavier High", "Y. Nott", "Yule B. Sari",
52];
53
54#[cfg(test)]
55mod tests {
56 use super::*;
57
58 #[test]
59 fn test_name() {
60 assert!(!name().is_empty());
61 }
62}