#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Debug, Clone)]
pub struct CharSet {
pub horizontal: char,
pub vertical_line: char,
pub arc_down_right: char,
pub arc_down_left: char,
pub arc_up_right: char,
pub arc_up_left: char,
pub end_cap: char,
pub start_cap: char,
pub up_right: char,
pub down_horizontal: char,
pub dash_horizontal: char,
pub double_dash_horizontal: char,
pub heavy_dash_horizontal: char,
pub dot_horizontal: char,
}
impl Default for CharSet {
fn default() -> Self {
CharSet {
horizontal: DEFAULT_CHAR_SET.horizontal,
vertical_line: DEFAULT_CHAR_SET.vertical_line,
arc_down_right: DEFAULT_CHAR_SET.arc_down_right,
arc_down_left: DEFAULT_CHAR_SET.arc_down_left,
arc_up_right: DEFAULT_CHAR_SET.arc_up_right,
arc_up_left: DEFAULT_CHAR_SET.arc_up_left,
end_cap: DEFAULT_CHAR_SET.end_cap,
start_cap: DEFAULT_CHAR_SET.start_cap,
up_right: DEFAULT_CHAR_SET.up_right,
down_horizontal: DEFAULT_CHAR_SET.down_horizontal,
dash_horizontal: DEFAULT_CHAR_SET.dash_horizontal,
double_dash_horizontal: DEFAULT_CHAR_SET.double_dash_horizontal,
heavy_dash_horizontal: DEFAULT_CHAR_SET.heavy_dash_horizontal,
dot_horizontal: DEFAULT_CHAR_SET.dot_horizontal,
}
}
}
pub const DEFAULT_CHAR_SET: CharSet = CharSet {
horizontal: '─',
vertical_line: '│',
arc_down_right: '╭',
arc_down_left: '╮',
arc_up_right: '╰',
arc_up_left: '╯',
end_cap: '╴',
start_cap: '╶',
up_right: '└',
down_horizontal: '┬',
dash_horizontal: '╌',
double_dash_horizontal: '┄',
heavy_dash_horizontal: '╍',
dot_horizontal: '·',
};
pub fn create_char_set(character: char) -> CharSet {
CharSet {
horizontal: character,
vertical_line: character,
arc_down_right: character,
arc_down_left: character,
arc_up_right: character,
arc_up_left: character,
end_cap: character,
start_cap: character,
up_right: character,
down_horizontal: character,
dash_horizontal: character,
double_dash_horizontal: character,
heavy_dash_horizontal: character,
dot_horizontal: character,
}
}