1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
mod dictionary { use std::io::prelude::*; use std::fs::File; use rand::prelude::*; pub struct Dictionary { pub data: Vec<String>, } impl Dictionary { pub fn load(&mut self, filename: &str) -> std::io::Result<()> { if self.data.len() > 0 { self.data.clear() } let mut file = File::open(filename)?; let mut string = String::new(); file.read_to_string(&mut string)?; let split = string.split("\n"); let vector: Vec<&str> = split.collect(); for item in vector { self.data.push(item.to_string()); } Ok(()) } pub fn get_random_word(&self) -> String { let mut rng = rand::thread_rng(); let index = rng.gen_range(0,self.data.len()); self.data.get(index).unwrap().to_string() } } }