incantata/examples/main.rs

45 lines
1.3 KiB
Rust

use incantata::*;
fn main() {
loop {
// structure of the language
let s = Structure {
// how many characters the onset is
onset: 1,
// allowed characters for the onset
onset_dict: CONSONANTS.chars().collect(),
// how many characters the nucleus is
nucleus: 1,
// allowed characters for the nucleus
nucleus_dict: VOCALS
.chars()
// .cycle()
// .take(VOCALS.len() * 5)
// .chain(VOCALS_ACCENTS.chars())
.collect(),
// how many characters the coda is
coda: 0,
// allowed characters for the coda
coda_dict: CONSONANTS.chars().collect(),
// minimum length of a word
min_len: 4,
// the words will be generated to be around this length
// due to the way incantata works (by combining valid syllables),
// we can't actually make a word of a given length
suggested_len: 15,
};
// generate 10 words
for _ in 0..10 {
println!("{}", s.generate());
}
if std::io::stdin().read_line(&mut String::new()).is_err() {
break;
}
}
}