This is a rust port of the Ruby port of the Java Random Name Generator library.
It generates it's results based upon which language file is specified. Currently, the following are supported in both English and Russian:
Thanks to Zhumatiy Sergey, for his contribution of the Russian language files, originally in the Ruby version of this library!
The following are in progress:
```rust use rnglib::{RNG, Language};
fn main() { let rng = RNG::try_from(&Language::Elven).unwrap();
let first_name = rng.generate_name();
let last_name = rng.generate_name();
println!("{}: {} {}", rng.name, first_name, last_name)
} ```
It is possible to control the number of syllables for a generated name:
```rust use rnglib::{RNG, Language};
fn main() { let rng = RNG::tryfrom(&Language::Fantasy).unwrap(); let name = rng.generatenamebycount(3); println!("{}: {}", rng.name, name) } ```
One can also pass in custom language files:
``` use rnglib::{RNG};
fn main() { let rng = RNG::newfromfile("src/languages/Test-tiny.txt").unwrap(); let name = rng.generate_name(); println!("{}: {}", rng.name, name) } ```
To get information about the available options, run help.
Using cargo:
``` $> cargo run -- --help Random Name Generator
Usage: rng [OPTIONS]
Options:
-d, --demonic
-e, --elven
-f, --fantasy
-g, --goblin
-r, --roman
-c, --curse [UNDER CONSTRUCTION]
-x, --flipmode Flipmode is the greatest! (Random language)
--russian Use Russian language file, if available
--short Creates shorter names
--raw
or from the binary:
$> rng --help
Passing in one of the language flags will generate a name using that Language's source file.
From cargo:
$> cargo run -- -g
Goblin: zradogul bargodul
It also now supports Russian language files:
``` ❯ cargo run -- --roman --russian Римский: Дафрибуцио Дубенус
❯ cargo run -- --goblin --russian Гоблин: Краог Зрашагул
❯ cargo run -- --fantasy --russian Фантазия: Валорнен Гарлакот
❯ cargo run -- --elven --russian Эльфийский: Латэнаэлмасан Шелиан ```
From the binary:
$> rng -e
Elven: daedar latherdre