From 22146b5b5c0fe2ee866a742d637e83d7627227a6 Mon Sep 17 00:00:00 2001 From: Emi Simpson Date: Wed, 24 Apr 2024 20:38:53 -0400 Subject: [PATCH] i read homestuck ;-; --- Cargo.lock | 2 +- Cargo.toml | 2 +- src/main.rs | 23 ++++++++++++++++++++--- 3 files changed, 22 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 816c1a6..8c8dc6d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -94,7 +94,7 @@ dependencies = [ [[package]] name = "dw" -version = "0.1.0" +version = "0.1.1" dependencies = [ "chbs", ] diff --git a/Cargo.toml b/Cargo.toml index e3b431f..90b4fcb 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "dw" -version = "0.1.0" +version = "0.1.1" authors = ["Emi Simpson "] edition = "2018" diff --git a/src/main.rs b/src/main.rs index ee6d627..03210c2 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,16 +1,33 @@ -use chbs::{component::{phrase::BasicPhraseBuilder, word::{FixedWordSetProvider, WordCapitalizer}}, probability::Probability, scheme::Scheme, word::WordList}; +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 styler = WordCapitalizer::new(Probability::half(), Probability::half()); + 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(styler)], + 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() + } +}