kimun_notes/settings/
icons.rs1#[derive(Clone)]
6pub struct Icons {
7 pub directory: &'static str,
9 pub directory_up: &'static str,
10 pub note: &'static str,
11 pub journal: &'static str,
12 pub attachment: &'static str,
13 pub info: &'static str,
15 pub workspace: &'static str,
16 pub question_prompt: &'static str,
18 pub rail_files: &'static str,
20 pub rail_find: &'static str,
21 pub rail_tags: &'static str,
22 pub rail_links: &'static str,
23 pub rail_outline: &'static str,
24 pub rail_config: &'static str,
25}
26
27impl Icons {
28 pub fn new(use_nerd_fonts: bool) -> Self {
29 if use_nerd_fonts {
30 Self {
31 directory: "",
32 directory_up: "",
33 note: "",
34 journal: "",
35 attachment: "",
36 info: "",
37 workspace: "⊙",
38 question_prompt: "❯",
39 rail_files: "▤",
40 rail_find: "⌕",
41 rail_tags: "#",
42 rail_links: "↩",
43 rail_outline: "≡",
44 rail_config: "",
45 }
46 } else {
47 Self {
48 directory: "[D]",
49 directory_up: "[^]",
50 note: "[-]",
51 journal: "[J]",
52 attachment: "[@]",
53 info: "(i)",
54 workspace: "W",
55 question_prompt: ">",
56 rail_files: "=",
57 rail_find: "?",
58 rail_tags: "#",
59 rail_links: "<",
60 rail_outline: "-",
61 rail_config: "*",
62 }
63 }
64 }
65}
66
67#[cfg(test)]
68mod tests {
69 use super::*;
70
71 #[test]
72 fn nerd_fonts_info_icon_is_not_ascii() {
73 let icons = Icons::new(true);
74 assert!(!icons.info.is_ascii());
75 }
76
77 #[test]
78 fn plain_icons_are_ascii() {
79 let icons = Icons::new(false);
80 assert!(icons.info.is_ascii());
81 assert!(icons.directory.is_ascii());
82 assert!(icons.directory_up.is_ascii());
83 assert!(icons.note.is_ascii());
84 assert!(icons.journal.is_ascii());
85 }
86}