diff --git a/Cargo.toml b/Cargo.toml index 2d7f0ee..d368e21 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -13,6 +13,7 @@ A library to generate random name strings suitable for use in container instances, project names, application instances, etc. """ exclude = ["cli"] +build = "build.rs" [lib] name = "names" diff --git a/build.rs b/build.rs new file mode 100644 index 0000000..3879ae0 --- /dev/null +++ b/build.rs @@ -0,0 +1,24 @@ +use std::env; +use std::fs::File; +use std::io::{BufReader, BufWriter}; +use std::io::prelude::*; +use std::path::Path; + +fn main() { + generate(Path::new("data").join("adjectives.txt").as_path(), + Path::new(&env::var("OUT_DIR").unwrap()).join("adjectives.rs").as_path()); + generate(Path::new("data").join("nouns.txt").as_path(), + Path::new(&env::var("OUT_DIR").unwrap()).join("nouns.rs").as_path()); +} + +fn generate(src_path: &Path, dst_path: &Path) { + let src = File::open(src_path).unwrap(); + let src = BufReader::new(src); + let dst = File::create(dst_path).unwrap(); + let mut dst = BufWriter::new(dst); + write!(dst, "[\n").unwrap(); + for word in src.lines() { + write!(dst, "\"{}\",\n", &word.unwrap()).unwrap(); + } + write!(dst, "];\n").unwrap(); +} diff --git a/cli/Cargo.lock b/cli/Cargo.lock index a89fcd6..c693c4d 100644 --- a/cli/Cargo.lock +++ b/cli/Cargo.lock @@ -2,73 +2,65 @@ name = "names-cli" version = "0.10.0" dependencies = [ - "clap 1.4.6 (registry+https://github.com/rust-lang/crates.io-index)", + "clap 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "names 0.10.0", ] -[[package]] -name = "advapi32-sys" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "winapi 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "ansi_term" -version = "0.6.3" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "bitflags" -version = "0.3.2" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "clap" -version = "1.4.6" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "ansi_term 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", - "bitflags 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "strsim 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "ansi_term 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", + "bitflags 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)", + "strsim 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", + "unicode-width 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "vec_map 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "libc" -version = "0.1.12" +version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "names" version = "0.10.0" dependencies = [ - "rand 0.3.11 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "rand" -version = "0.3.11" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "advapi32-sys 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "strsim" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] -name = "winapi" -version = "0.2.4" +name = "unicode-width" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] -name = "winapi-build" -version = "0.1.1" +name = "vec_map" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" diff --git a/cli/Cargo.toml b/cli/Cargo.toml index bcb7321..623051f 100644 --- a/cli/Cargo.toml +++ b/cli/Cargo.toml @@ -12,6 +12,9 @@ A program to generate random names that look like 'used-jellyfish'. [[bin]] name = "names" -[dependencies] -clap = "~1.4" -names = { path = ".." } +[dependencies.clap] +version = "~2.3" +features = [ "suggestions", "color", "unstable" ] + +[dependencies.names] +path = ".." diff --git a/cli/src/main.rs b/cli/src/main.rs index efa91f2..9161cc9 100644 --- a/cli/src/main.rs +++ b/cli/src/main.rs @@ -1,30 +1,27 @@ -#[macro_use] extern crate clap; +#[macro_use] +extern crate clap; extern crate names; -use clap::{App, Arg}; use names::{Generator, Name}; fn main() { - let matches = App::new("names") - .version(&crate_version!()[..]) - .author("\nAuthor: Fletcher Nichol \n") - .about("A random name generator with results like `delirious-pail'.") - .arg(Arg::with_name("amount") - .help("Number of names to generate (default: 1)") - .index(1) - ) - .arg(Arg::with_name("number") - .short("n") - .long("number") - .help("Adds a random number to the name(s)") - ) - .get_matches(); - - let amount = value_t!(matches.value_of("amount"), usize).unwrap_or(1); - let naming: Name = if matches.is_present("number") { - Name::Numbered - } else { - Default::default() + let (naming, amount) = { + let app = clap_app!(names => + (version: &crate_version!()[..]) + (author: "\nAuthor: Fletcher Nichol \n") + (about: "A random name generator with results like `delirious-pail'.") + (@setting ColoredHelp) + (@arg amount: "Number of names to generate (default: 1)") + (@arg number: -n --number "Adds a random number to the name(s)") + ); + let matches = app.get_matches(); + let amount = value_t!(matches.value_of("amount"), usize).unwrap_or(1); + let naming: Name = if matches.is_present("number") { + Name::Numbered + } else { + Default::default() + }; + (naming, amount) }; let mut generator = Generator::with_naming(naming); diff --git a/data/adjectives.txt b/data/adjectives.txt new file mode 100644 index 0000000..0e632bf --- /dev/null +++ b/data/adjectives.txt @@ -0,0 +1,1124 @@ +aback +abaft +abandoned +abashed +aberrant +abhorrent +abiding +abject +ablaze +able +abnormal +aboard +aboriginal +abortive +abounding +abrasive +abrupt +absent +absorbed +absorbing +abstracted +absurd +abundant +abusive +acceptable +accessible +accidental +accurate +acid +acidic +acoustic +acrid +actually +ad +adamant +adaptable +addicted +adhesive +adjoining +adorable +adventurous +afraid +aggressive +agonizing +agreeable +ahead +ajar +alcoholic +alert +alike +alive +alleged +alluring +aloof +amazing +ambiguous +ambitious +amuck +amused +amusing +ancient +angry +animated +annoyed +annoying +anxious +apathetic +aquatic +aromatic +arrogant +ashamed +aspiring +assorted +astonishing +attractive +auspicious +automatic +available +average +awake +aware +awesome +awful +axiomatic +bad +barbarous +bashful +bawdy +beautiful +befitting +belligerent +beneficial +bent +berserk +best +better +bewildered +big +billowy +bite-sized +bitter +bizarre +black +black-and-white +bloody +blue +blue-eyed +blushing +boiling +boorish +bored +boring +bouncy +boundless +brainy +brash +brave +brawny +breakable +breezy +brief +bright +broad +broken +brown +bumpy +burly +bustling +busy +cagey +calculating +callous +calm +capable +capricious +careful +careless +caring +cautious +ceaseless +certain +changeable +charming +cheap +cheerful +chemical +chief +childlike +chilly +chivalrous +chubby +chunky +clammy +classy +clean +clear +clever +cloistered +closed +cloudy +clumsy +cluttered +coherent +cold +colorful +colossal +combative +comfortable +common +complete +complex +concerned +condemned +confused +conscious +cooing +cool +cooperative +coordinated +courageous +cowardly +crabby +craven +crazy +creepy +crooked +crowded +cruel +cuddly +cultured +cumbersome +curious +curly +curved +curvy +cut +cute +cynical +daffy +daily +damaged +damaging +damp +dangerous +dapper +dark +dashing +dazzling +dead +deadpan +deafening +dear +debonair +decisive +decorous +deep +deeply +defeated +defective +defiant +delicate +delicious +delightful +delirious +demonic +dependent +depressed +deranged +descriptive +deserted +detailed +determined +devilish +didactic +different +difficult +diligent +direful +dirty +disagreeable +disastrous +discreet +disgusted +disgusting +disillusioned +dispensable +distinct +disturbed +divergent +dizzy +domineering +doubtful +drab +draconian +dramatic +dreary +drunk +dry +dull +dusty +dynamic +dysfunctional +eager +early +earsplitting +earthy +easy +eatable +economic +educated +efficacious +efficient +eight +elastic +elated +elderly +electric +elegant +elfin +elite +embarrassed +eminent +empty +enchanted +enchanting +encouraging +endurable +energetic +enormous +entertaining +enthusiastic +envious +equable +equal +erect +erratic +ethereal +evanescent +evasive +even +excellent +excited +exciting +exclusive +exotic +expensive +extra-large +extra-small +exuberant +exultant +fabulous +faded +faint +fair +faithful +fallacious +false +familiar +famous +fanatical +fancy +fantastic +far +far-flung +fascinated +fast +fat +faulty +fearful +fearless +feeble +feigned +female +fertile +festive +few +fierce +filthy +fine +finicky +first +five +fixed +flagrant +flaky +flashy +flat +flawless +flimsy +flippant +flowery +fluffy +fluttering +foamy +foolish +foregoing +forgetful +fortunate +four +fragile +frail +frantic +free +freezing +frequent +fresh +fretful +friendly +frightened +frightening +full +fumbling +functional +funny +furry +furtive +future +futuristic +fuzzy +gabby +gainful +gamy +gaping +garrulous +gaudy +general +gentle +giant +giddy +gifted +gigantic +glamorous +gleaming +glib +glistening +glorious +glossy +godly +good +goofy +gorgeous +graceful +grandiose +grateful +gratis +gray +greasy +great +greedy +green +grey +grieving +groovy +grotesque +grouchy +grubby +gruesome +grumpy +guarded +guiltless +gullible +gusty +guttural +habitual +half +hallowed +halting +handsome +handsomely +handy +hanging +hapless +happy +hard +hard-to-find +harmonious +harsh +hateful +heady +healthy +heartbreaking +heavenly +heavy +hellish +helpful +helpless +hesitant +hideous +high +high-pitched +highfalutin +hilarious +hissing +historical +holistic +hollow +homeless +homely +honorable +horrible +hospitable +hot +huge +hulking +humdrum +humorous +hungry +hurried +hurt +hushed +husky +hypnotic +hysterical +icky +icy +idiotic +ignorant +ill +ill-fated +ill-informed +illegal +illustrious +imaginary +immense +imminent +impartial +imperfect +impolite +important +imported +impossible +incandescent +incompetent +inconclusive +incredible +industrious +inexpensive +infamous +innate +innocent +inquisitive +insidious +instinctive +intelligent +interesting +internal +invincible +irate +irritating +itchy +jaded +jagged +jazzy +jealous +jittery +jobless +jolly +joyous +judicious +juicy +jumbled +jumpy +juvenile +kaput +keen +kind +kindhearted +kindly +knotty +knowing +knowledgeable +known +labored +lackadaisical +lacking +lame +lamentable +languid +large +last +late +laughable +lavish +lazy +lean +learned +left +legal +lethal +level +lewd +light +like +likeable +limping +literate +little +lively +living +lonely +long +long-term +longing +loose +lopsided +loud +loutish +lovely +loving +low +lowly +lucky +ludicrous +lumpy +lush +luxuriant +lying +lyrical +macabre +macho +maddening +madly +magenta +magical +magnificent +majestic +makeshift +male +malicious +mammoth +maniacal +many +marked +married +marvelous +massive +material +materialistic +mature +mean +measly +meaty +medical +meek +mellow +melodic +melted +merciful +mere +messy +mighty +military +milky +mindless +miniature +minor +miscreant +misty +mixed +moaning +modern +moldy +momentous +motionless +mountainous +muddled +mundane +murky +mushy +mute +mysterious +naive +nappy +narrow +nasty +natural +naughty +nauseating +near +neat +nebulous +necessary +needless +needy +neighborly +nervous +new +next +nice +nifty +nimble +nine +nippy +noiseless +noisy +nonchalant +nondescript +nonstop +normal +nostalgic +nosy +noxious +null +numberless +numerous +nutritious +nutty +oafish +obedient +obeisant +obese +obnoxious +obscene +obsequious +observant +obsolete +obtainable +oceanic +odd +offbeat +old +old-fashioned +omniscient +one +onerous +open +opposite +optimal +orange +ordinary +organic +ossified +outgoing +outrageous +outstanding +oval +overconfident +overjoyed +overrated +overt +overwrought +painful +painstaking +pale +paltry +panicky +panoramic +parallel +parched +parsimonious +past +pastoral +pathetic +peaceful +penitent +perfect +periodic +permissible +perpetual +petite +phobic +physical +picayune +pink +piquant +placid +plain +plant +plastic +plausible +pleasant +plucky +pointless +poised +polite +political +poor +possessive +possible +powerful +precious +premium +present +pretty +previous +pricey +prickly +private +probable +productive +profuse +protective +proud +psychedelic +psychotic +public +puffy +pumped +puny +purple +purring +pushy +puzzled +puzzling +quack +quaint +quarrelsome +questionable +quick +quickest +quiet +quirky +quixotic +quizzical +rabid +racial +ragged +rainy +rambunctious +rampant +rapid +rare +raspy +ratty +ready +real +rebel +receptive +recondite +red +redundant +reflective +regular +relieved +remarkable +reminiscent +repulsive +resolute +resonant +responsible +rhetorical +rich +right +righteous +rightful +rigid +ripe +ritzy +roasted +robust +romantic +roomy +rotten +rough +round +royal +ruddy +rude +rural +rustic +ruthless +sable +sad +safe +salty +same +sassy +satisfying +savory +scandalous +scarce +scared +scary +scattered +scientific +scintillating +scrawny +screeching +second +second-hand +secret +secretive +sedate +seemly +selective +selfish +separate +serious +shaggy +shaky +shallow +sharp +shiny +shivering +shocking +short +shrill +shut +shy +sick +silent +silky +silly +simple +simplistic +sincere +six +skillful +skinny +sleepy +slim +slimy +slippery +sloppy +slow +small +smart +smelly +smiling +smoggy +smooth +sneaky +snobbish +snotty +soft +soggy +solid +somber +sophisticated +sordid +sore +sour +sparkling +special +spectacular +spicy +spiffy +spiky +spiritual +spiteful +splendid +spooky +spotless +spotted +spotty +spurious +squalid +square +squealing +squeamish +staking +stale +standing +statuesque +steadfast +steady +steep +stereotyped +sticky +stiff +stimulating +stingy +stormy +straight +strange +striped +strong +stupendous +stupid +sturdy +subdued +subsequent +substantial +successful +succinct +sudden +sulky +super +superb +superficial +supreme +swanky +sweet +sweltering +swift +symptomatic +synonymous +taboo +tacit +tacky +talented +tall +tame +tan +tangible +tangy +tart +tasteful +tasteless +tasty +tawdry +tearful +tedious +teeny +teeny-tiny +telling +temporary +ten +tender +tense +tenuous +terrible +terrific +tested +testy +thankful +therapeutic +thick +thin +thinkable +third +thirsty +thoughtful +thoughtless +threatening +three +thundering +tidy +tight +tightfisted +tiny +tired +tiresome +toothsome +torpid +tough +towering +tranquil +trashy +tremendous +tricky +trite +troubled +truculent +true +truthful +two +typical +ubiquitous +ugliest +ugly +ultra +unable +unaccountable +unadvised +unarmed +unbecoming +unbiased +uncovered +understood +undesirable +unequal +unequaled +uneven +unhealthy +uninterested +unique +unkempt +unknown +unnatural +unruly +unsightly +unsuitable +untidy +unused +unusual +unwieldy +unwritten +upbeat +uppity +upset +uptight +used +useful +useless +utopian +utter +uttermost +vacuous +vagabond +vague +valuable +various +vast +vengeful +venomous +verdant +versed +victorious +vigorous +violent +violet +vivacious +voiceless +volatile +voracious +vulgar +wacky +waggish +waiting +wakeful +wandering +wanting +warlike +warm +wary +wasteful +watery +weak +wealthy +weary +well-groomed +well-made +well-off +well-to-do +wet +whimsical +whispering +white +whole +wholesale +wicked +wide +wide-eyed +wiggly +wild +willing +windy +wiry +wise +wistful +witty +woebegone +womanly +wonderful +wooden +woozy +workable +worried +worthless +wrathful +wretched +wrong +wry +yellow +yielding +young +youthful +yummy +zany +zealous +zesty +zippy +zonked diff --git a/data/nouns.txt b/data/nouns.txt new file mode 100644 index 0000000..5cf37b8 --- /dev/null +++ b/data/nouns.txt @@ -0,0 +1,981 @@ +able +account +achieve +achiever +acoustics +act +action +activity +actor +addition +adjustment +advertisement +advice +aftermath +afternoon +afterthought +agreement +air +airplane +airport +alarm +alley +amount +amusement +anger +angle +animal +answer +ant +ants +apparatus +apparel +apple +apples +appliance +approval +arch +argument +arithmetic +arm +army +art +attack +attempt +attention +attraction +aunt +authority +babies +baby +back +badge +bag +bait +balance +ball +balloon +balls +banana +band +base +baseball +basin +basket +basketball +bat +bath +battle +bead +beam +bean +bear +bears +beast +bed +bedroom +beds +bee +beef +beetle +beggar +beginner +behavior +belief +believe +bell +bells +berry +bike +bikes +bird +birds +birth +birthday +bit +bite +blade +blood +blow +board +boat +boats +body +bomb +bone +book +books +boot +border +bottle +boundary +box +boy +boys +brain +brake +branch +brass +bread +breakfast +breath +brick +bridge +brother +brothers +brush +bubble +bucket +building +bulb +bun +burn +burst +bushes +business +butter +button +cabbage +cable +cactus +cake +cakes +calculator +calendar +camera +camp +can +cannon +canvas +cap +caption +car +card +care +carpenter +carriage +cars +cart +cast +cat +cats +cattle +cause +cave +celery +cellar +cemetery +cent +chain +chair +chairs +chalk +chance +change +channel +cheese +cherries +cherry +chess +chicken +chickens +children +chin +church +circle +clam +class +clock +clocks +cloth +cloud +clouds +clover +club +coach +coal +coast +coat +cobweb +coil +collar +color +comb +comfort +committee +company +comparison +competition +condition +connection +control +cook +copper +copy +cord +cork +corn +cough +country +cover +cow +cows +crack +cracker +crate +crayon +cream +creator +creature +credit +crib +crime +crook +crow +crowd +crown +crush +cry +cub +cup +current +curtain +curve +cushion +dad +daughter +day +death +debt +decision +deer +degree +design +desire +desk +destruction +detail +development +digestion +dime +dinner +dinosaurs +direction +dirt +discovery +discussion +disease +disgust +distance +distribution +division +dock +doctor +dog +dogs +doll +dolls +donkey +door +downtown +drain +drawer +dress +drink +driving +drop +drug +drum +duck +ducks +dust +ear +earth +earthquake +edge +education +effect +egg +eggnog +eggs +elbow +end +engine +error +event +example +exchange +existence +expansion +experience +expert +eye +eyes +face +fact +fairies +fall +family +fan +fang +farm +farmer +father +faucet +fear +feast +feather +feeling +feet +fiction +field +fifth +fight +finger +fire +fireman +fish +flag +flame +flavor +flesh +flight +flock +floor +flower +flowers +fly +fog +fold +food +foot +force +fork +form +fowl +frame +friction +friend +friends +frog +frogs +front +fruit +fuel +furniture +galley +game +garden +gate +geese +ghost +giants +giraffe +girl +girls +glass +glove +glue +goat +gold +goldfish +good-bye +goose +government +governor +grade +grain +grandfather +grandmother +grape +grass +grip +ground +group +growth +guide +guitar +gun +hair +haircut +hall +hammer +hand +hands +harbor +harmony +hat +hate +head +health +hearing +heart +heat +help +hen +hill +history +hobbies +hole +holiday +home +honey +hook +hope +horn +horse +horses +hose +hospital +hot +hour +house +houses +humor +hydrant +ice +icicle +idea +impulse +income +increase +industry +ink +insect +instrument +insurance +interest +invention +iron +island +jail +jam +jar +jeans +jelly +jellyfish +jewel +join +joke +journey +judge +juice +jump +kettle +key +kick +kiss +kite +kitten +kittens +kitty +knee +knife +knot +knowledge +laborer +lace +ladybug +lake +lamp +land +language +laugh +lawyer +lead +leaf +learning +leather +leg +legs +letter +letters +lettuce +level +library +lift +light +limit +line +linen +lip +liquid +list +lizards +loaf +lock +locket +look +loss +love +low +lumber +lunch +lunchroom +machine +magic +maid +mailbox +man +manager +map +marble +mark +market +mask +mass +match +meal +measure +meat +meeting +memory +men +metal +mice +middle +milk +mind +mine +minister +mint +minute +mist +mitten +mom +money +monkey +month +moon +morning +mother +motion +mountain +mouth +move +muscle +music +nail +name +nation +neck +need +needle +nerve +nest +net +news +night +noise +north +nose +note +notebook +number +nut +oatmeal +observation +ocean +offer +office +oil +operation +opinion +orange +oranges +order +organization +ornament +oven +owl +owner +page +pail +pain +paint +pan +pancake +paper +parcel +parent +park +part +partner +party +passenger +paste +patch +payment +peace +pear +pen +pencil +person +pest +pet +pets +pickle +picture +pie +pies +pig +pigs +pin +pipe +pizzas +place +plane +planes +plant +plantation +plants +plastic +plate +play +playground +pleasure +plot +plough +pocket +point +poison +police +polish +pollution +popcorn +porter +position +pot +potato +powder +power +price +print +prison +process +produce +profit +property +prose +protest +pull +pump +punishment +purpose +push +quarter +quartz +queen +question +quicksand +quiet +quill +quilt +quince +quiver +rabbit +rabbits +rail +railway +rain +rainstorm +rake +range +rat +rate +ray +reaction +reading +reason +receipt +recess +record +regret +relation +religion +representative +request +respect +rest +reward +rhythm +rice +riddle +rifle +ring +rings +river +road +robin +rock +rod +roll +roof +room +root +rose +route +rub +rule +run +sack +sail +salt +sand +scale +scarecrow +scarf +scene +scent +school +science +scissors +screw +sea +seashore +seat +secretary +seed +selection +self +sense +servant +shade +shake +shame +shape +sheep +sheet +shelf +ship +shirt +shock +shoe +shoes +shop +show +side +sidewalk +sign +silk +silver +sink +sister +sisters +size +skate +skin +skirt +sky +slave +sleep +sleet +slip +slope +smash +smell +smile +smoke +snail +snails +snake +snakes +sneeze +snow +soap +society +sock +soda +sofa +son +song +songs +sort +sound +soup +space +spade +spark +spiders +sponge +spoon +spot +spring +spy +square +squirrel +stage +stamp +star +start +statement +station +steam +steel +stem +step +stew +stick +sticks +stitch +stocking +stomach +stone +stop +store +story +stove +stranger +straw +stream +street +stretch +string +structure +substance +sugar +suggestion +suit +summer +sun +support +surprise +sweater +swim +swing +system +table +tail +talk +tank +taste +tax +teaching +team +teeth +temper +tendency +tent +territory +test +texture +theory +thing +things +thought +thread +thrill +throat +throne +thumb +thunder +ticket +tiger +time +tin +title +toad +toe +toes +tomatoes +tongue +tooth +toothbrush +toothpaste +top +touch +town +toy +toys +trade +trail +train +trains +tramp +transport +tray +treatment +tree +trees +trick +trip +trouble +trousers +truck +trucks +tub +turkey +turn +twig +twist +umbrella +uncle +underwear +unit +use +vacation +value +van +vase +vegetable +veil +vein +verse +vessel +vest +view +visitor +voice +volcano +volleyball +voyage +walk +wall +war +wash +waste +watch +water +wave +waves +wax +way +wealth +weather +week +weight +wheel +whip +whistle +wilderness +wind +window +wine +wing +winter +wire +wish +woman +women +wood +wool +word +work +worm +wound +wren +wrench +wrist +writer +writing +yak +yam +yard +yarn +year +yoke +zebra +zephyr +zinc +zipper +zoo diff --git a/src/adjectives.rs b/src/adjectives.rs deleted file mode 100644 index be9006c..0000000 --- a/src/adjectives.rs +++ /dev/null @@ -1,1126 +0,0 @@ -pub const LIST: &'static [&'static str] = &[ - "aback", - "abaft", - "abandoned", - "abashed", - "aberrant", - "abhorrent", - "abiding", - "abject", - "ablaze", - "able", - "abnormal", - "aboard", - "aboriginal", - "abortive", - "abounding", - "abrasive", - "abrupt", - "absent", - "absorbed", - "absorbing", - "abstracted", - "absurd", - "abundant", - "abusive", - "acceptable", - "accessible", - "accidental", - "accurate", - "acid", - "acidic", - "acoustic", - "acrid", - "actually", - "ad", - "adamant", - "adaptable", - "addicted", - "adhesive", - "adjoining", - "adorable", - "adventurous", - "afraid", - "aggressive", - "agonizing", - "agreeable", - "ahead", - "ajar", - "alcoholic", - "alert", - "alike", - "alive", - "alleged", - "alluring", - "aloof", - "amazing", - "ambiguous", - "ambitious", - "amuck", - "amused", - "amusing", - "ancient", - "angry", - "animated", - "annoyed", - "annoying", - "anxious", - "apathetic", - "aquatic", - "aromatic", - "arrogant", - "ashamed", - "aspiring", - "assorted", - "astonishing", - "attractive", - "auspicious", - "automatic", - "available", - "average", - "awake", - "aware", - "awesome", - "awful", - "axiomatic", - "bad", - "barbarous", - "bashful", - "bawdy", - "beautiful", - "befitting", - "belligerent", - "beneficial", - "bent", - "berserk", - "best", - "better", - "bewildered", - "big", - "billowy", - "bite-sized", - "bitter", - "bizarre", - "black", - "black-and-white", - "bloody", - "blue", - "blue-eyed", - "blushing", - "boiling", - "boorish", - "bored", - "boring", - "bouncy", - "boundless", - "brainy", - "brash", - "brave", - "brawny", - "breakable", - "breezy", - "brief", - "bright", - "broad", - "broken", - "brown", - "bumpy", - "burly", - "bustling", - "busy", - "cagey", - "calculating", - "callous", - "calm", - "capable", - "capricious", - "careful", - "careless", - "caring", - "cautious", - "ceaseless", - "certain", - "changeable", - "charming", - "cheap", - "cheerful", - "chemical", - "chief", - "childlike", - "chilly", - "chivalrous", - "chubby", - "chunky", - "clammy", - "classy", - "clean", - "clear", - "clever", - "cloistered", - "closed", - "cloudy", - "clumsy", - "cluttered", - "coherent", - "cold", - "colorful", - "colossal", - "combative", - "comfortable", - "common", - "complete", - "complex", - "concerned", - "condemned", - "confused", - "conscious", - "cooing", - "cool", - "cooperative", - "coordinated", - "courageous", - "cowardly", - "crabby", - "craven", - "crazy", - "creepy", - "crooked", - "crowded", - "cruel", - "cuddly", - "cultured", - "cumbersome", - "curious", - "curly", - "curved", - "curvy", - "cut", - "cute", - "cynical", - "daffy", - "daily", - "damaged", - "damaging", - "damp", - "dangerous", - "dapper", - "dark", - "dashing", - "dazzling", - "dead", - "deadpan", - "deafening", - "dear", - "debonair", - "decisive", - "decorous", - "deep", - "deeply", - "defeated", - "defective", - "defiant", - "delicate", - "delicious", - "delightful", - "delirious", - "demonic", - "dependent", - "depressed", - "deranged", - "descriptive", - "deserted", - "detailed", - "determined", - "devilish", - "didactic", - "different", - "difficult", - "diligent", - "direful", - "dirty", - "disagreeable", - "disastrous", - "discreet", - "disgusted", - "disgusting", - "disillusioned", - "dispensable", - "distinct", - "disturbed", - "divergent", - "dizzy", - "domineering", - "doubtful", - "drab", - "draconian", - "dramatic", - "dreary", - "drunk", - "dry", - "dull", - "dusty", - "dynamic", - "dysfunctional", - "eager", - "early", - "earsplitting", - "earthy", - "easy", - "eatable", - "economic", - "educated", - "efficacious", - "efficient", - "eight", - "elastic", - "elated", - "elderly", - "electric", - "elegant", - "elfin", - "elite", - "embarrassed", - "eminent", - "empty", - "enchanted", - "enchanting", - "encouraging", - "endurable", - "energetic", - "enormous", - "entertaining", - "enthusiastic", - "envious", - "equable", - "equal", - "erect", - "erratic", - "ethereal", - "evanescent", - "evasive", - "even", - "excellent", - "excited", - "exciting", - "exclusive", - "exotic", - "expensive", - "extra-large", - "extra-small", - "exuberant", - "exultant", - "fabulous", - "faded", - "faint", - "fair", - "faithful", - "fallacious", - "false", - "familiar", - "famous", - "fanatical", - "fancy", - "fantastic", - "far", - "far-flung", - "fascinated", - "fast", - "fat", - "faulty", - "fearful", - "fearless", - "feeble", - "feigned", - "female", - "fertile", - "festive", - "few", - "fierce", - "filthy", - "fine", - "finicky", - "first", - "five", - "fixed", - "flagrant", - "flaky", - "flashy", - "flat", - "flawless", - "flimsy", - "flippant", - "flowery", - "fluffy", - "fluttering", - "foamy", - "foolish", - "foregoing", - "forgetful", - "fortunate", - "four", - "fragile", - "frail", - "frantic", - "free", - "freezing", - "frequent", - "fresh", - "fretful", - "friendly", - "frightened", - "frightening", - "full", - "fumbling", - "functional", - "funny", - "furry", - "furtive", - "future", - "futuristic", - "fuzzy", - "gabby", - "gainful", - "gamy", - "gaping", - "garrulous", - "gaudy", - "general", - "gentle", - "giant", - "giddy", - "gifted", - "gigantic", - "glamorous", - "gleaming", - "glib", - "glistening", - "glorious", - "glossy", - "godly", - "good", - "goofy", - "gorgeous", - "graceful", - "grandiose", - "grateful", - "gratis", - "gray", - "greasy", - "great", - "greedy", - "green", - "grey", - "grieving", - "groovy", - "grotesque", - "grouchy", - "grubby", - "gruesome", - "grumpy", - "guarded", - "guiltless", - "gullible", - "gusty", - "guttural", - "habitual", - "half", - "hallowed", - "halting", - "handsome", - "handsomely", - "handy", - "hanging", - "hapless", - "happy", - "hard", - "hard-to-find", - "harmonious", - "harsh", - "hateful", - "heady", - "healthy", - "heartbreaking", - "heavenly", - "heavy", - "hellish", - "helpful", - "helpless", - "hesitant", - "hideous", - "high", - "high-pitched", - "highfalutin", - "hilarious", - "hissing", - "historical", - "holistic", - "hollow", - "homeless", - "homely", - "honorable", - "horrible", - "hospitable", - "hot", - "huge", - "hulking", - "humdrum", - "humorous", - "hungry", - "hurried", - "hurt", - "hushed", - "husky", - "hypnotic", - "hysterical", - "icky", - "icy", - "idiotic", - "ignorant", - "ill", - "ill-fated", - "ill-informed", - "illegal", - "illustrious", - "imaginary", - "immense", - "imminent", - "impartial", - "imperfect", - "impolite", - "important", - "imported", - "impossible", - "incandescent", - "incompetent", - "inconclusive", - "incredible", - "industrious", - "inexpensive", - "infamous", - "innate", - "innocent", - "inquisitive", - "insidious", - "instinctive", - "intelligent", - "interesting", - "internal", - "invincible", - "irate", - "irritating", - "itchy", - "jaded", - "jagged", - "jazzy", - "jealous", - "jittery", - "jobless", - "jolly", - "joyous", - "judicious", - "juicy", - "jumbled", - "jumpy", - "juvenile", - "kaput", - "keen", - "kind", - "kindhearted", - "kindly", - "knotty", - "knowing", - "knowledgeable", - "known", - "labored", - "lackadaisical", - "lacking", - "lame", - "lamentable", - "languid", - "large", - "last", - "late", - "laughable", - "lavish", - "lazy", - "lean", - "learned", - "left", - "legal", - "lethal", - "level", - "lewd", - "light", - "like", - "likeable", - "limping", - "literate", - "little", - "lively", - "living", - "lonely", - "long", - "long-term", - "longing", - "loose", - "lopsided", - "loud", - "loutish", - "lovely", - "loving", - "low", - "lowly", - "lucky", - "ludicrous", - "lumpy", - "lush", - "luxuriant", - "lying", - "lyrical", - "macabre", - "macho", - "maddening", - "madly", - "magenta", - "magical", - "magnificent", - "majestic", - "makeshift", - "male", - "malicious", - "mammoth", - "maniacal", - "many", - "marked", - "married", - "marvelous", - "massive", - "material", - "materialistic", - "mature", - "mean", - "measly", - "meaty", - "medical", - "meek", - "mellow", - "melodic", - "melted", - "merciful", - "mere", - "messy", - "mighty", - "military", - "milky", - "mindless", - "miniature", - "minor", - "miscreant", - "misty", - "mixed", - "moaning", - "modern", - "moldy", - "momentous", - "motionless", - "mountainous", - "muddled", - "mundane", - "murky", - "mushy", - "mute", - "mysterious", - "naive", - "nappy", - "narrow", - "nasty", - "natural", - "naughty", - "nauseating", - "near", - "neat", - "nebulous", - "necessary", - "needless", - "needy", - "neighborly", - "nervous", - "new", - "next", - "nice", - "nifty", - "nimble", - "nine", - "nippy", - "noiseless", - "noisy", - "nonchalant", - "nondescript", - "nonstop", - "normal", - "nostalgic", - "nosy", - "noxious", - "null", - "numberless", - "numerous", - "nutritious", - "nutty", - "oafish", - "obedient", - "obeisant", - "obese", - "obnoxious", - "obscene", - "obsequious", - "observant", - "obsolete", - "obtainable", - "oceanic", - "odd", - "offbeat", - "old", - "old-fashioned", - "omniscient", - "one", - "onerous", - "open", - "opposite", - "optimal", - "orange", - "ordinary", - "organic", - "ossified", - "outgoing", - "outrageous", - "outstanding", - "oval", - "overconfident", - "overjoyed", - "overrated", - "overt", - "overwrought", - "painful", - "painstaking", - "pale", - "paltry", - "panicky", - "panoramic", - "parallel", - "parched", - "parsimonious", - "past", - "pastoral", - "pathetic", - "peaceful", - "penitent", - "perfect", - "periodic", - "permissible", - "perpetual", - "petite", - "phobic", - "physical", - "picayune", - "pink", - "piquant", - "placid", - "plain", - "plant", - "plastic", - "plausible", - "pleasant", - "plucky", - "pointless", - "poised", - "polite", - "political", - "poor", - "possessive", - "possible", - "powerful", - "precious", - "premium", - "present", - "pretty", - "previous", - "pricey", - "prickly", - "private", - "probable", - "productive", - "profuse", - "protective", - "proud", - "psychedelic", - "psychotic", - "public", - "puffy", - "pumped", - "puny", - "purple", - "purring", - "pushy", - "puzzled", - "puzzling", - "quack", - "quaint", - "quarrelsome", - "questionable", - "quick", - "quickest", - "quiet", - "quirky", - "quixotic", - "quizzical", - "rabid", - "racial", - "ragged", - "rainy", - "rambunctious", - "rampant", - "rapid", - "rare", - "raspy", - "ratty", - "ready", - "real", - "rebel", - "receptive", - "recondite", - "red", - "redundant", - "reflective", - "regular", - "relieved", - "remarkable", - "reminiscent", - "repulsive", - "resolute", - "resonant", - "responsible", - "rhetorical", - "rich", - "right", - "righteous", - "rightful", - "rigid", - "ripe", - "ritzy", - "roasted", - "robust", - "romantic", - "roomy", - "rotten", - "rough", - "round", - "royal", - "ruddy", - "rude", - "rural", - "rustic", - "ruthless", - "sable", - "sad", - "safe", - "salty", - "same", - "sassy", - "satisfying", - "savory", - "scandalous", - "scarce", - "scared", - "scary", - "scattered", - "scientific", - "scintillating", - "scrawny", - "screeching", - "second", - "second-hand", - "secret", - "secretive", - "sedate", - "seemly", - "selective", - "selfish", - "separate", - "serious", - "shaggy", - "shaky", - "shallow", - "sharp", - "shiny", - "shivering", - "shocking", - "short", - "shrill", - "shut", - "shy", - "sick", - "silent", - "silky", - "silly", - "simple", - "simplistic", - "sincere", - "six", - "skillful", - "skinny", - "sleepy", - "slim", - "slimy", - "slippery", - "sloppy", - "slow", - "small", - "smart", - "smelly", - "smiling", - "smoggy", - "smooth", - "sneaky", - "snobbish", - "snotty", - "soft", - "soggy", - "solid", - "somber", - "sophisticated", - "sordid", - "sore", - "sour", - "sparkling", - "special", - "spectacular", - "spicy", - "spiffy", - "spiky", - "spiritual", - "spiteful", - "splendid", - "spooky", - "spotless", - "spotted", - "spotty", - "spurious", - "squalid", - "square", - "squealing", - "squeamish", - "staking", - "stale", - "standing", - "statuesque", - "steadfast", - "steady", - "steep", - "stereotyped", - "sticky", - "stiff", - "stimulating", - "stingy", - "stormy", - "straight", - "strange", - "striped", - "strong", - "stupendous", - "stupid", - "sturdy", - "subdued", - "subsequent", - "substantial", - "successful", - "succinct", - "sudden", - "sulky", - "super", - "superb", - "superficial", - "supreme", - "swanky", - "sweet", - "sweltering", - "swift", - "symptomatic", - "synonymous", - "taboo", - "tacit", - "tacky", - "talented", - "tall", - "tame", - "tan", - "tangible", - "tangy", - "tart", - "tasteful", - "tasteless", - "tasty", - "tawdry", - "tearful", - "tedious", - "teeny", - "teeny-tiny", - "telling", - "temporary", - "ten", - "tender", - "tense", - "tenuous", - "terrible", - "terrific", - "tested", - "testy", - "thankful", - "therapeutic", - "thick", - "thin", - "thinkable", - "third", - "thirsty", - "thoughtful", - "thoughtless", - "threatening", - "three", - "thundering", - "tidy", - "tight", - "tightfisted", - "tiny", - "tired", - "tiresome", - "toothsome", - "torpid", - "tough", - "towering", - "tranquil", - "trashy", - "tremendous", - "tricky", - "trite", - "troubled", - "truculent", - "true", - "truthful", - "two", - "typical", - "ubiquitous", - "ugliest", - "ugly", - "ultra", - "unable", - "unaccountable", - "unadvised", - "unarmed", - "unbecoming", - "unbiased", - "uncovered", - "understood", - "undesirable", - "unequal", - "unequaled", - "uneven", - "unhealthy", - "uninterested", - "unique", - "unkempt", - "unknown", - "unnatural", - "unruly", - "unsightly", - "unsuitable", - "untidy", - "unused", - "unusual", - "unwieldy", - "unwritten", - "upbeat", - "uppity", - "upset", - "uptight", - "used", - "useful", - "useless", - "utopian", - "utter", - "uttermost", - "vacuous", - "vagabond", - "vague", - "valuable", - "various", - "vast", - "vengeful", - "venomous", - "verdant", - "versed", - "victorious", - "vigorous", - "violent", - "violet", - "vivacious", - "voiceless", - "volatile", - "voracious", - "vulgar", - "wacky", - "waggish", - "waiting", - "wakeful", - "wandering", - "wanting", - "warlike", - "warm", - "wary", - "wasteful", - "watery", - "weak", - "wealthy", - "weary", - "well-groomed", - "well-made", - "well-off", - "well-to-do", - "wet", - "whimsical", - "whispering", - "white", - "whole", - "wholesale", - "wicked", - "wide", - "wide-eyed", - "wiggly", - "wild", - "willing", - "windy", - "wiry", - "wise", - "wistful", - "witty", - "woebegone", - "womanly", - "wonderful", - "wooden", - "woozy", - "workable", - "worried", - "worthless", - "wrathful", - "wretched", - "wrong", - "wry", - "yellow", - "yielding", - "young", - "youthful", - "yummy", - "zany", - "zealous", - "zesty", - "zippy", - "zonked", -]; diff --git a/src/lib.rs b/src/lib.rs index 49bc3fc..4df5cd4 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -29,7 +29,7 @@ //! ``` //! use names::Generator; //! -//! let mut generator: Generator = Default::default(); +//! let mut generator = Generator::default(); //! println!("Your project is: {}", generator.next().unwrap()); //! // #=> "Your project is: rusty-nail" //! ``` @@ -52,11 +52,11 @@ //! this returns only one result: //! //! ``` -//! use names::Generator; +//! use names::{Generator, Name}; //! //! let adjectives = &["imaginary"]; //! let nouns = &["roll"]; -//! let mut generator = Generator::new(adjectives, nouns, Default::default()); +//! let mut generator = Generator::new(adjectives, nouns, Name::default()); //! //! assert_eq!("imaginary-roll", generator.next().unwrap()); //! ``` @@ -65,8 +65,10 @@ extern crate rand; use rand::Rng; -mod adjectives; -mod nouns; +pub const ADJECTIVES: &'static [&'static str] = &include!(concat!(env!("OUT_DIR"), + "/adjectives.rs")); + +pub const NOUNS: &'static [&'static str] = &include!(concat!(env!("OUT_DIR"), "/nouns.rs")); /// A naming strategy for the `Generator` pub enum Name { @@ -74,11 +76,13 @@ pub enum Name { Plain, /// This represents a naming strategy with a random number appended to the /// end, of the form `"ADJECTIVE-NOUN-NUMBER"` - Numbered + Numbered, } impl Default for Name { - fn default() -> Name { Name::Plain } + fn default() -> Self { + Name::Plain + } } /// A random name generator which combines an adjective, a noun, and an @@ -108,11 +112,7 @@ impl<'a> Generator<'a> { /// /// assert_eq!("sassy-clocks", generator.next().unwrap()); /// ``` - pub fn new( - adjectives: &'a [&'a str], - nouns: &'a [&'a str], - naming: Name - ) -> Generator<'a> { + pub fn new(adjectives: &'a [&'a str], nouns: &'a [&'a str], naming: Name) -> Self { Generator { adjectives: adjectives, nouns: nouns, @@ -130,11 +130,8 @@ impl<'a> Generator<'a> { /// /// println!("My new name is: {}", generator.next().unwrap()); /// ``` - pub fn with_naming(naming: Name) -> Generator<'a> { - Generator::new( - adjectives::LIST, - nouns::LIST, - naming) + pub fn with_naming(naming: Name) -> Self { + Generator::new(ADJECTIVES, NOUNS, naming) } fn rand_adj(&self) -> &str { @@ -151,8 +148,8 @@ impl<'a> Generator<'a> { } impl<'a> Default for Generator<'a> { - fn default() -> Generator<'a> { - Generator::new(adjectives::LIST, nouns::LIST, Default::default()) + fn default() -> Self { + Generator::new(ADJECTIVES, NOUNS, Name::default()) } } diff --git a/src/nouns.rs b/src/nouns.rs deleted file mode 100644 index b148102..0000000 --- a/src/nouns.rs +++ /dev/null @@ -1,983 +0,0 @@ -pub const LIST: &'static [&'static str] = &[ - "able", - "account", - "achieve", - "achiever", - "acoustics", - "act", - "action", - "activity", - "actor", - "addition", - "adjustment", - "advertisement", - "advice", - "aftermath", - "afternoon", - "afterthought", - "agreement", - "air", - "airplane", - "airport", - "alarm", - "alley", - "amount", - "amusement", - "anger", - "angle", - "animal", - "answer", - "ant", - "ants", - "apparatus", - "apparel", - "apple", - "apples", - "appliance", - "approval", - "arch", - "argument", - "arithmetic", - "arm", - "army", - "art", - "attack", - "attempt", - "attention", - "attraction", - "aunt", - "authority", - "babies", - "baby", - "back", - "badge", - "bag", - "bait", - "balance", - "ball", - "balloon", - "balls", - "banana", - "band", - "base", - "baseball", - "basin", - "basket", - "basketball", - "bat", - "bath", - "battle", - "bead", - "beam", - "bean", - "bear", - "bears", - "beast", - "bed", - "bedroom", - "beds", - "bee", - "beef", - "beetle", - "beggar", - "beginner", - "behavior", - "belief", - "believe", - "bell", - "bells", - "berry", - "bike", - "bikes", - "bird", - "birds", - "birth", - "birthday", - "bit", - "bite", - "blade", - "blood", - "blow", - "board", - "boat", - "boats", - "body", - "bomb", - "bone", - "book", - "books", - "boot", - "border", - "bottle", - "boundary", - "box", - "boy", - "boys", - "brain", - "brake", - "branch", - "brass", - "bread", - "breakfast", - "breath", - "brick", - "bridge", - "brother", - "brothers", - "brush", - "bubble", - "bucket", - "building", - "bulb", - "bun", - "burn", - "burst", - "bushes", - "business", - "butter", - "button", - "cabbage", - "cable", - "cactus", - "cake", - "cakes", - "calculator", - "calendar", - "camera", - "camp", - "can", - "cannon", - "canvas", - "cap", - "caption", - "car", - "card", - "care", - "carpenter", - "carriage", - "cars", - "cart", - "cast", - "cat", - "cats", - "cattle", - "cause", - "cave", - "celery", - "cellar", - "cemetery", - "cent", - "chain", - "chair", - "chairs", - "chalk", - "chance", - "change", - "channel", - "cheese", - "cherries", - "cherry", - "chess", - "chicken", - "chickens", - "children", - "chin", - "church", - "circle", - "clam", - "class", - "clock", - "clocks", - "cloth", - "cloud", - "clouds", - "clover", - "club", - "coach", - "coal", - "coast", - "coat", - "cobweb", - "coil", - "collar", - "color", - "comb", - "comfort", - "committee", - "company", - "comparison", - "competition", - "condition", - "connection", - "control", - "cook", - "copper", - "copy", - "cord", - "cork", - "corn", - "cough", - "country", - "cover", - "cow", - "cows", - "crack", - "cracker", - "crate", - "crayon", - "cream", - "creator", - "creature", - "credit", - "crib", - "crime", - "crook", - "crow", - "crowd", - "crown", - "crush", - "cry", - "cub", - "cup", - "current", - "curtain", - "curve", - "cushion", - "dad", - "daughter", - "day", - "death", - "debt", - "decision", - "deer", - "degree", - "design", - "desire", - "desk", - "destruction", - "detail", - "development", - "digestion", - "dime", - "dinner", - "dinosaurs", - "direction", - "dirt", - "discovery", - "discussion", - "disease", - "disgust", - "distance", - "distribution", - "division", - "dock", - "doctor", - "dog", - "dogs", - "doll", - "dolls", - "donkey", - "door", - "downtown", - "drain", - "drawer", - "dress", - "drink", - "driving", - "drop", - "drug", - "drum", - "duck", - "ducks", - "dust", - "ear", - "earth", - "earthquake", - "edge", - "education", - "effect", - "egg", - "eggnog", - "eggs", - "elbow", - "end", - "engine", - "error", - "event", - "example", - "exchange", - "existence", - "expansion", - "experience", - "expert", - "eye", - "eyes", - "face", - "fact", - "fairies", - "fall", - "family", - "fan", - "fang", - "farm", - "farmer", - "father", - "faucet", - "fear", - "feast", - "feather", - "feeling", - "feet", - "fiction", - "field", - "fifth", - "fight", - "finger", - "fire", - "fireman", - "fish", - "flag", - "flame", - "flavor", - "flesh", - "flight", - "flock", - "floor", - "flower", - "flowers", - "fly", - "fog", - "fold", - "food", - "foot", - "force", - "fork", - "form", - "fowl", - "frame", - "friction", - "friend", - "friends", - "frog", - "frogs", - "front", - "fruit", - "fuel", - "furniture", - "galley", - "game", - "garden", - "gate", - "geese", - "ghost", - "giants", - "giraffe", - "girl", - "girls", - "glass", - "glove", - "glue", - "goat", - "gold", - "goldfish", - "good-bye", - "goose", - "government", - "governor", - "grade", - "grain", - "grandfather", - "grandmother", - "grape", - "grass", - "grip", - "ground", - "group", - "growth", - "guide", - "guitar", - "gun", - "hair", - "haircut", - "hall", - "hammer", - "hand", - "hands", - "harbor", - "harmony", - "hat", - "hate", - "head", - "health", - "hearing", - "heart", - "heat", - "help", - "hen", - "hill", - "history", - "hobbies", - "hole", - "holiday", - "home", - "honey", - "hook", - "hope", - "horn", - "horse", - "horses", - "hose", - "hospital", - "hot", - "hour", - "house", - "houses", - "humor", - "hydrant", - "ice", - "icicle", - "idea", - "impulse", - "income", - "increase", - "industry", - "ink", - "insect", - "instrument", - "insurance", - "interest", - "invention", - "iron", - "island", - "jail", - "jam", - "jar", - "jeans", - "jelly", - "jellyfish", - "jewel", - "join", - "joke", - "journey", - "judge", - "juice", - "jump", - "kettle", - "key", - "kick", - "kiss", - "kite", - "kitten", - "kittens", - "kitty", - "knee", - "knife", - "knot", - "knowledge", - "laborer", - "lace", - "ladybug", - "lake", - "lamp", - "land", - "language", - "laugh", - "lawyer", - "lead", - "leaf", - "learning", - "leather", - "leg", - "legs", - "letter", - "letters", - "lettuce", - "level", - "library", - "lift", - "light", - "limit", - "line", - "linen", - "lip", - "liquid", - "list", - "lizards", - "loaf", - "lock", - "locket", - "look", - "loss", - "love", - "low", - "lumber", - "lunch", - "lunchroom", - "machine", - "magic", - "maid", - "mailbox", - "man", - "manager", - "map", - "marble", - "mark", - "market", - "mask", - "mass", - "match", - "meal", - "measure", - "meat", - "meeting", - "memory", - "men", - "metal", - "mice", - "middle", - "milk", - "mind", - "mine", - "minister", - "mint", - "minute", - "mist", - "mitten", - "mom", - "money", - "monkey", - "month", - "moon", - "morning", - "mother", - "motion", - "mountain", - "mouth", - "move", - "muscle", - "music", - "nail", - "name", - "nation", - "neck", - "need", - "needle", - "nerve", - "nest", - "net", - "news", - "night", - "noise", - "north", - "nose", - "note", - "notebook", - "number", - "nut", - "oatmeal", - "observation", - "ocean", - "offer", - "office", - "oil", - "operation", - "opinion", - "orange", - "oranges", - "order", - "organization", - "ornament", - "oven", - "owl", - "owner", - "page", - "pail", - "pain", - "paint", - "pan", - "pancake", - "paper", - "parcel", - "parent", - "park", - "part", - "partner", - "party", - "passenger", - "paste", - "patch", - "payment", - "peace", - "pear", - "pen", - "pencil", - "person", - "pest", - "pet", - "pets", - "pickle", - "picture", - "pie", - "pies", - "pig", - "pigs", - "pin", - "pipe", - "pizzas", - "place", - "plane", - "planes", - "plant", - "plantation", - "plants", - "plastic", - "plate", - "play", - "playground", - "pleasure", - "plot", - "plough", - "pocket", - "point", - "poison", - "police", - "polish", - "pollution", - "popcorn", - "porter", - "position", - "pot", - "potato", - "powder", - "power", - "price", - "print", - "prison", - "process", - "produce", - "profit", - "property", - "prose", - "protest", - "pull", - "pump", - "punishment", - "purpose", - "push", - "quarter", - "quartz", - "queen", - "question", - "quicksand", - "quiet", - "quill", - "quilt", - "quince", - "quiver", - "rabbit", - "rabbits", - "rail", - "railway", - "rain", - "rainstorm", - "rake", - "range", - "rat", - "rate", - "ray", - "reaction", - "reading", - "reason", - "receipt", - "recess", - "record", - "regret", - "relation", - "religion", - "representative", - "request", - "respect", - "rest", - "reward", - "rhythm", - "rice", - "riddle", - "rifle", - "ring", - "rings", - "river", - "road", - "robin", - "rock", - "rod", - "roll", - "roof", - "room", - "root", - "rose", - "route", - "rub", - "rule", - "run", - "sack", - "sail", - "salt", - "sand", - "scale", - "scarecrow", - "scarf", - "scene", - "scent", - "school", - "science", - "scissors", - "screw", - "sea", - "seashore", - "seat", - "secretary", - "seed", - "selection", - "self", - "sense", - "servant", - "shade", - "shake", - "shame", - "shape", - "sheep", - "sheet", - "shelf", - "ship", - "shirt", - "shock", - "shoe", - "shoes", - "shop", - "show", - "side", - "sidewalk", - "sign", - "silk", - "silver", - "sink", - "sister", - "sisters", - "size", - "skate", - "skin", - "skirt", - "sky", - "slave", - "sleep", - "sleet", - "slip", - "slope", - "smash", - "smell", - "smile", - "smoke", - "snail", - "snails", - "snake", - "snakes", - "sneeze", - "snow", - "soap", - "society", - "sock", - "soda", - "sofa", - "son", - "song", - "songs", - "sort", - "sound", - "soup", - "space", - "spade", - "spark", - "spiders", - "sponge", - "spoon", - "spot", - "spring", - "spy", - "square", - "squirrel", - "stage", - "stamp", - "star", - "start", - "statement", - "station", - "steam", - "steel", - "stem", - "step", - "stew", - "stick", - "sticks", - "stitch", - "stocking", - "stomach", - "stone", - "stop", - "store", - "story", - "stove", - "stranger", - "straw", - "stream", - "street", - "stretch", - "string", - "structure", - "substance", - "sugar", - "suggestion", - "suit", - "summer", - "sun", - "support", - "surprise", - "sweater", - "swim", - "swing", - "system", - "table", - "tail", - "talk", - "tank", - "taste", - "tax", - "teaching", - "team", - "teeth", - "temper", - "tendency", - "tent", - "territory", - "test", - "texture", - "theory", - "thing", - "things", - "thought", - "thread", - "thrill", - "throat", - "throne", - "thumb", - "thunder", - "ticket", - "tiger", - "time", - "tin", - "title", - "toad", - "toe", - "toes", - "tomatoes", - "tongue", - "tooth", - "toothbrush", - "toothpaste", - "top", - "touch", - "town", - "toy", - "toys", - "trade", - "trail", - "train", - "trains", - "tramp", - "transport", - "tray", - "treatment", - "tree", - "trees", - "trick", - "trip", - "trouble", - "trousers", - "truck", - "trucks", - "tub", - "turkey", - "turn", - "twig", - "twist", - "umbrella", - "uncle", - "underwear", - "unit", - "use", - "vacation", - "value", - "van", - "vase", - "vegetable", - "veil", - "vein", - "verse", - "vessel", - "vest", - "view", - "visitor", - "voice", - "volcano", - "volleyball", - "voyage", - "walk", - "wall", - "war", - "wash", - "waste", - "watch", - "water", - "wave", - "waves", - "wax", - "way", - "wealth", - "weather", - "week", - "weight", - "wheel", - "whip", - "whistle", - "wilderness", - "wind", - "window", - "wine", - "wing", - "winter", - "wire", - "wish", - "woman", - "women", - "wood", - "wool", - "word", - "work", - "worm", - "wound", - "wren", - "wrench", - "wrist", - "writer", - "writing", - "yak", - "yam", - "yard", - "yarn", - "year", - "yoke", - "zebra", - "zephyr", - "zinc", - "zipper", - "zoo", -];