Suitably random and reasonably unique human readable (and fairly adorable) ids, ala GiphyCat
1b1bcfbd94
Signed-off-by: Fletcher Nichol <fnichol@nichol.ca> |
||
---|---|---|
cli | ||
src | ||
.gitignore | ||
.travis.yml | ||
Cargo.toml | ||
CHANGELOG.md | ||
LICENSE-MIT | ||
README.md |
names
Random name generator for Rust
- Crate: https://crates.io/crates/names
- Documentation http://fnichol.github.io/names/names/
- Source Code: https://github.com/fnichol/names
Usage
This crate is on crates.io and can be
used by adding names
to your dependencies in your project's Cargo.toml
file:
[dependencies]
names = "0.10.0"
and this to your crate root:
extern crate names;
Example: Painless defaults
The easiest way to get started is to use the default Generator
to return
a name:
use names::{Generator, Name};
fn main() {
let mut generator = Generator::default(Name::Plain);
println!("Your project is: {}", generator.next().unwrap());
// #=> "Your project is: rusty-nail"
}
If more randomness is required, you can generate a name with a trailing 4-digit number:
use names::{Generator, Name};
fn main() {
let mut generator = Generator::default(Name::Numbered);
println!("Your project is: {}", generator.next().unwrap());
// #=> "Your project is: pushy-pencil-5602"
}
Example: with custom dictionaries
If you would rather supply your own custom adjective and noun word lists, you can provide your own by supplying 2 string slices. For example, this returns only one result:
use names::{Generator, Name};
fn main() {
let adjectives = &["imaginary"];
let nouns = &["roll"];
let mut generator = Generator::new(adjectives, nouns, Name::Plain);
assert_eq!("imaginary-roll", generator.next().unwrap());
}