adjective-adjective-animal/README.md

2.5 KiB

adjective_adjective_animal

Build Status license

Rust library to generate suitably random and reasonably unique human readable (and fairly adorable) ids, ala GiphyCat

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