4 releases (breaking)
0.3.0 | Oct 10, 2024 |
---|---|
0.2.0 | Jul 1, 2021 |
0.1.0 | Jun 24, 2021 |
0.0.1 | Jun 23, 2021 |
#1405 in Command line utilities
38 downloads per month
Used in 3 crates
83KB
172 lines
witty-phrase-generator
Generates three-word phrases of the form intensifier-adjective-noun
, just like GitHub default repo names.
Has minimal dependencies (just rand
and getopts
) and minimal bloat. Uses backtracking and binary search when constraints are tight to avoid repeated computation and maximize speed.
Usage
$ witty-phrase-generator # -> staggeringly-wise-alchohol
$ witty-phrase-generator -2 # -> fantastic-brush
$ witty-phrase-generator -n 4 # (outputs 4 lines of 3-word phrases)
$ witty-phrase-generator -4c 'e' # (outputs a four word phrase where each word starts with 'e')
use witty_phrase_generator::WPGen;
fn main() {
let wp_gen = WPGen::new(); // contains its own thread_rng
wp_gen.generic(3, // words per phrase
30, // phrases
Some(25), // minimum length
Some(25), // maximum length
Some('a'), // alliterate with 'a'
).expect("Could not satisfy constraints!");
}
Also supports alliteration, max length, and other features. Use witty-phrase-generator --help
or check the docstrings to learn more!
Improvements
- always looking for more witty words to add to the wordlist.
- can have duplicates (common if constraints are tight)
- allow generating with a given length but variable number of words
- implement ablaut vowel rules for noun-noun phrases to make them sound nicer
Dependencies
~1.5MB
~26K SLoC