fancy_table/
charset.rs

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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
pub struct TableChars {
    pub se: char,
    pub ew: char,
    pub nw: char,
    pub sw: char,
    pub ns: char,
    pub ne: char,
    pub ews: char,
    pub nes: char,
    pub nws: char,
    pub new: char,
    pub news: char,
    pub dew: char,
    pub dnes: char,
    pub dnws: char,
    pub dnews: char,
    pub title: char,
}

#[allow(dead_code)]
pub enum Charset {
    Classic,
    Modern,
    Simple,
    Minimal,
}

impl Charset {
    pub fn get_chars(&self) -> TableChars {
        match self {
            Self::Modern => TableChars {
                se: '╭',
                nw: '╯',
                sw: '╮',
                ns: '│',
                ne: '╰',
                ew: '─',
                ews: '┬',
                nes: '├',
                nws: '┤',
                new: '┴',
                dew: '═',
                news: '┼',
                dnes: '╞',
                dnws: '╡',
                dnews: '╪',
                title: '▪',
            },
            Self::Classic => TableChars {
                se: '┌',
                nw: '┘',
                sw: '┐',
                ns: '│',
                ne: '└',
                ew: '─',
                ews: '┬',
                nes: '├',
                nws: '┤',
                new: '┴',
                dew: '═',
                news: '┼',
                dnes: '╞',
                dnws: '╡',
                dnews: '╪',
                title: '▪',
            },
            Self::Simple => TableChars {
                se: '+',
                nw: '+',
                sw: '+',
                ns: '|',
                ne: '+',
                ew: '-',
                ews: '+',
                nes: '|',
                nws: '|',
                new: '+',
                dew: '=',
                news: '+',
                dnes: '|',
                dnws: '|',
                dnews: '=',
                title: '*',
            },
            Self::Minimal => TableChars {
                se: ' ',
                nw: ' ',
                sw: ' ',
                ns: ' ',
                ne: ' ',
                ew: '-',
                ews: '-',
                nes: ' ',
                nws: ' ',
                new: '-',
                dew: '=',
                news: '-',
                dnes: ' ',
                dnws: ' ',
                dnews: '=',
                title: '=',
            },
        }
    }
}