diff options
Diffstat (limited to 'src/main.rs')
-rw-r--r-- | src/main.rs | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/src/main.rs b/src/main.rs new file mode 100644 index 0000000..f067e2b --- /dev/null +++ b/src/main.rs @@ -0,0 +1,56 @@ +use rust_embed::RustEmbed; +use rand::seq::IteratorRandom; +use serde::Deserialize; +use colored::*; + +mod center; +use center::Center; + +#[derive(RustEmbed)] +#[folder = "nihongo-benkyou/kotowaza"] +#[include = "*.json"] +struct KotowazaDir; + +#[derive(Deserialize)] +#[allow(unused)] +struct Kotowaza { + en: String, + ja: String, + kana: String, + week: String, +} + + +fn main() { + let mut rng = rand::thread_rng(); + + let name = KotowazaDir::iter() + .choose(&mut rng) + .unwrap(); + + let file = KotowazaDir::get(&name) + .unwrap(); + + let data = file.data + .as_ref(); + + let kotowaza: Kotowaza = serde_json::from_slice(data) + .unwrap(); + + let (term_width, _) = term_size::dimensions() + .unwrap(); + + print!("\n{}\n{}\n\n{}\n\n", + kotowaza.ja + .center(term_width) + .bold() + .yellow(), + kotowaza.kana + .center(term_width) + .dimmed() + .yellow(), + kotowaza.en + .center(term_width) + .italic() + .cyan()); +} |