Skip to main content

fancy_table/
charset.rs

1pub struct TableChars {
2    pub se: char,
3    pub ew: char,
4    pub nw: char,
5    pub sw: char,
6    pub ns: char,
7    pub ne: char,
8    pub ews: char,
9    pub nes: char,
10    pub nws: char,
11    pub new: char,
12    pub news: char,
13    pub dew: char,
14    pub dnes: char,
15    pub dnws: char,
16    pub dnews: char,
17    pub title: char,
18}
19
20#[allow(dead_code)]
21pub enum Charset {
22    Classic,
23    Modern,
24    Simple,
25    Minimal,
26}
27
28impl Charset {
29    pub fn get_chars(&self) -> TableChars {
30        match self {
31            Self::Modern => TableChars {
32                se: '╭',
33                nw: '╯',
34                sw: '╮',
35                ns: '│',
36                ne: '╰',
37                ew: '─',
38                ews: '┬',
39                nes: '├',
40                nws: '┤',
41                new: '┴',
42                dew: '═',
43                news: '┼',
44                dnes: '╞',
45                dnws: '╡',
46                dnews: '╪',
47                title: '▪',
48            },
49            Self::Classic => TableChars {
50                se: '┌',
51                nw: '┘',
52                sw: '┐',
53                ns: '│',
54                ne: '└',
55                ew: '─',
56                ews: '┬',
57                nes: '├',
58                nws: '┤',
59                new: '┴',
60                dew: '═',
61                news: '┼',
62                dnes: '╞',
63                dnws: '╡',
64                dnews: '╪',
65                title: '▪',
66            },
67            Self::Simple => TableChars {
68                se: '+',
69                nw: '+',
70                sw: '+',
71                ns: '|',
72                ne: '+',
73                ew: '-',
74                ews: '+',
75                nes: '|',
76                nws: '|',
77                new: '+',
78                dew: '=',
79                news: '+',
80                dnes: '|',
81                dnws: '|',
82                dnews: '=',
83                title: '*',
84            },
85            Self::Minimal => TableChars {
86                se: ' ',
87                nw: ' ',
88                sw: ' ',
89                ns: ' ',
90                ne: ' ',
91                ew: '-',
92                ews: '-',
93                nes: ' ',
94                nws: ' ',
95                new: '-',
96                dew: '=',
97                news: '-',
98                dnes: ' ',
99                dnws: ' ',
100                dnews: '=',
101                title: '=',
102            },
103        }
104    }
105}