]> git.lizzy.rs Git - kotowaza.git/blob - src/main.rs
Initial commit
[kotowaza.git] / src / main.rs
1 use rust_embed::RustEmbed;
2 use rand::seq::IteratorRandom;
3 use serde::Deserialize;
4 use colored::*;
5
6 mod center;
7 use center::Center;
8
9 #[derive(RustEmbed)]
10 #[folder = "nihongo-benkyou/kotowaza"]
11 #[include = "*.json"]
12 struct KotowazaDir;
13
14 #[derive(Deserialize)]
15 #[allow(unused)]
16 struct Kotowaza {
17         en: String,
18         ja: String,
19         kana: String,
20         week: String,
21 }
22
23
24 fn main() {
25         let mut rng = rand::thread_rng();
26
27         let name = KotowazaDir::iter()
28                 .choose(&mut rng)
29                 .unwrap();
30
31         let file = KotowazaDir::get(&name)
32                 .unwrap();
33
34         let data = file.data
35                 .as_ref();
36
37         let kotowaza: Kotowaza = serde_json::from_slice(data)
38                 .unwrap();
39
40         let (term_width, _) = term_size::dimensions()
41                 .unwrap();
42
43         print!("\n{}\n{}\n\n{}\n\n",
44                 kotowaza.ja
45                         .center(term_width)
46                         .bold()
47                         .yellow(),
48                 kotowaza.kana
49                         .center(term_width)
50                         .dimmed()
51                         .yellow(),
52                 kotowaza.en
53                         .center(term_width)
54                         .italic()
55                         .cyan());
56 }