Suitably random and reasonably unique human readable (and fairly adorable) ids, ala GiphyCat
cli | ||
data | ||
src | ||
.gitignore | ||
.travis.yml | ||
build.rs | ||
Cargo.toml | ||
CHANGELOG.md | ||
LICENSE-MIT | ||
README.md |
adjective_adjective_animal
Rust library to generate suitably random and reasonably unique human readable (and fairly adorable) ids, ala GiphyCat
- Crate: https://crates.io/crates/adjective_adjective_animal
- Documentation https://docs.rs/crate/adjective_adjective_animal
- Source Code: https://github.com/moparisthebest/adjective-adjective-animal
Usage
This crate is on crates.io and can be
used by adding adjective_adjective_animal
to your dependencies in your project's Cargo.toml
file:
[dependencies]
adjective_adjective_animal = "0.1.0"
and this to your crate root:
extern crate adjective_adjective_animal;
Example: Painless defaults
The easiest way to get started is to use the default Generator
to return
a name:
use adjective_adjective_animal::Generator;
fn main() {
let mut generator = Generator::default();
println!("Your project is: {}", generator.next().unwrap());
// #=> "Your project is: IndustrialSecretiveSwan"
}
Example: with custom dictionaries
If you would rather supply your own custom adjective and animal word lists, you can provide your own by supplying 2 string slices. For example, this returns only one result:
use adjective_adjective_animal::Generator;
fn main() {
let adjectives = &["Imaginary"];
let animals = &["Bear"];
let mut generator = Generator::new(adjectives, animals);
assert_eq!("ImaginaryImaginaryBear", generator.next().unwrap());
}
Credits
- rust's names crate, which this is forked from
- npm's adjective-adjective-animal for lists
curl 'https://raw.githubusercontent.com/a-type/adjective-adjective-animal/master/lib/lists/animals.js' | grep -Eo '"[^"]+"' | tr -d '"' | tr '[:upper:]' '[:lower:]' | sed 's/.*/\u&/' | sort | uniq > animals.txt
curl 'https://raw.githubusercontent.com/a-type/adjective-adjective-animal/master/lib/lists/adjectives.js' | grep -Eo '"[^"]+"' | tr -d '"' | tr '[:upper:]' '[:lower:]' | sed 's/.*/\u&/' | sort | uniq > adjectives.txt