#[derive(Copy, Clone, Debug, PartialEq, Eq)]
pub enum BuiltinDrawer {
Unicode,
Ascii,
}
pub trait Draw {
fn get_elements(&self) -> DrawElements;
}
impl Draw for BuiltinDrawer {
fn get_elements(&self) -> DrawElements {
match self {
BuiltinDrawer::Unicode => DrawElements {
hbar: '─',
vbar: '│',
xbar: '┼',
vbar_break: '┆',
vbar_gap: '┆',
uarrow: '🭯',
rarrow: '▶',
ltop: '╭',
mtop: '┬',
rtop: '╮',
lbot: '╰',
mbot: '┴',
rbot: '╯',
lbox: '[',
rbox: ']',
lcross: '├',
rcross: '┤',
underbar: '┬',
underline: '─',
},
BuiltinDrawer::Ascii => DrawElements {
hbar: '-',
vbar: '|',
xbar: '+',
vbar_break: '*',
vbar_gap: ':',
uarrow: '^',
rarrow: '>',
ltop: ',',
mtop: 'v',
rtop: '.',
lbot: '`',
mbot: '^',
rbot: '\'',
lbox: '[',
rbox: ']',
lcross: '|',
rcross: '|',
underbar: '|',
underline: '^',
},
}
}
}
#[allow(missing_docs)]
#[derive(Copy, Clone, Debug, PartialEq, Eq)]
pub struct DrawElements {
pub hbar: char,
pub vbar: char,
pub xbar: char,
pub vbar_break: char,
pub vbar_gap: char,
pub uarrow: char,
pub rarrow: char,
pub ltop: char,
pub mtop: char,
pub rtop: char,
pub lbot: char,
pub rbot: char,
pub mbot: char,
pub lbox: char,
pub rbox: char,
pub lcross: char,
pub rcross: char,
pub underbar: char,
pub underline: char,
}