diff options
| author | tslil clingman <tslil@posteo.de> | 2022-09-29 22:55:01 +0200 |
|---|---|---|
| committer | tslil clingman <tslil@posteo.de> | 2022-09-29 22:55:01 +0200 |
| commit | ab985ecb4cb6bcc8a65ff79aa746a1f80fa4b2f4 (patch) | |
| tree | 876352f82e51723ac1cbadeda272c3adbef00ae5 /srchr/src/main.rs | |
| parent | 785fa20b4e4a5372857f6f033b9d478685460cea (diff) | |
Refactor code
Diffstat (limited to 'srchr/src/main.rs')
| -rw-r--r-- | srchr/src/main.rs | 23 |
1 files changed, 10 insertions, 13 deletions
diff --git a/srchr/src/main.rs b/srchr/src/main.rs index 2762646..46ec5d6 100644 --- a/srchr/src/main.rs +++ b/srchr/src/main.rs @@ -1,24 +1,21 @@ +mod config; mod corpus; +mod evaluation; mod layout; +mod output; use rayon::prelude::*; use rand::prelude::*; use rand_pcg::*; +use config::*; use corpus::*; +use evaluation::*; use layout::*; use std::time::Instant; -const NUM_CONTESTANTS: usize = 128; -const NUM_PERSIST: usize = 8; - -// TODO: command line arguments to start at a given layout string, maybe read -// from file? Might as well make num_contestants and survive_threshold -// configurable, and number of swaps when generating new layout, and index -// finger threshold. - struct Tournament<'a> { rngs: Vec<Pcg64>, top_prelayouts: Vec<(Prelayout, u32)>, @@ -33,7 +30,7 @@ impl<'a> Tournament<'a> { } let mut top_prelayouts: Vec<(Prelayout, u32)> = Vec::new(); - let score = corpus.prelayout_fitness(&seed_prelayout); + let score = prelayout_fitness(&corpus, &seed_prelayout); for _ in 0..NUM_PERSIST { top_prelayouts.push((seed_prelayout.clone(), score)); } @@ -55,7 +52,7 @@ impl<'a> Tournament<'a> { &self.top_prelayouts[rng.gen_range(0..NUM_PERSIST)].0, &mut rng, ); - return (layout, self.corpus.prelayout_fitness(&layout)); + return (layout, prelayout_fitness(&self.corpus, &layout)); }) .collect::<Vec<(Prelayout, u32)>>(); @@ -79,10 +76,10 @@ impl<'a> Tournament<'a> { } fn main() { - let corpus = Corpus::load("books.txt").unwrap(); + let corpus = Corpus::load(CORPUS_FILE_NAME).unwrap(); println!("{}", corpus); - let seed_prelayout = Layout::from_verbose("QWERTYUIOPASDFGHJKL'ZXCVBNM,./") + let seed_prelayout = Layout::from_verbose(STARTING_LAYOUT_STRING) .unwrap() .as_prelayout(); @@ -95,7 +92,7 @@ fn main() { if let Some(prelayout) = improvement { let layout = Layout::from_prelayout(&prelayout, &corpus); - let evl = corpus.evaluate_layout(&layout); + let evl = Evaluation::evaluate_layout(&corpus, &layout); println!(""); println!("================================================================================\n\n{}", layout |
