34 lines
1.0 KiB
Rust
34 lines
1.0 KiB
Rust
use chbs::{component::{phrase::BasicPhraseBuilder, word::{FixedWordSetProvider, WordCapitalizer}}, entropy::{Entropy, HasEntropy}, prelude::WordStyler, probability::Probability, scheme::Scheme, word::WordList};
|
|
|
|
fn main() {
|
|
let wordlist = WordList::builtin_eff_general_short();
|
|
let provider = FixedWordSetProvider::new(wordlist.sampler(), 6);
|
|
let capitalizer = WordCapitalizer::new(Probability::Sometimes(0.3), Probability::Sometimes(0.8));
|
|
let builder = BasicPhraseBuilder::new("✨".into());
|
|
let scheme = Scheme::new(
|
|
Box::new(provider),
|
|
vec![Box::new(capitalizer), Box::new(Terezifier{})],
|
|
Box::new(builder),
|
|
Vec::new(),
|
|
);
|
|
|
|
println!("{}", scheme.generate());
|
|
}
|
|
|
|
#[derive(Debug)]
|
|
struct Terezifier {}
|
|
|
|
impl WordStyler for Terezifier {
|
|
fn style_word(&self, word: String) -> String {
|
|
word.replace(&['i', 'I'], "1")
|
|
.replace(&['e', 'E'], "3")
|
|
.replace(&['a', 'A'], "4")
|
|
}
|
|
}
|
|
|
|
impl HasEntropy for Terezifier {
|
|
fn entropy(&self) -> Entropy {
|
|
Entropy::one()
|
|
}
|
|
}
|