#![cfg_attr(feature = "std", doc = "```")]
#![cfg_attr(not(feature = "std"), doc = "```ignore")]
#![cfg_attr(feature = "std", doc = "```")]
#![cfg_attr(not(feature = "std"), doc = "```ignore")]
#![cfg_attr(feature = "std", doc = "```")]
#![cfg_attr(not(feature = "std"), doc = "```ignore")]
mod border;
mod builder;
mod horizontal_line;
mod vertical_line;
#[cfg(feature = "std")]
mod border_color;
#[cfg(feature = "std")]
mod line_char;
#[cfg(feature = "std")]
mod line_text;
#[cfg(feature = "std")]
#[cfg_attr(docsrs, doc(cfg(feature = "std")))]
pub use self::{border_color::BorderColor, line_char::LineChar, line_text::LineText};
pub use self::{
border::Border,
builder::{On, Style},
horizontal_line::HorizontalLine,
vertical_line::VerticalLine,
};
use crate::grid::config::{Borders, CompactConfig, CompactMultilineConfig};
use crate::settings::TableOption;
#[cfg(feature = "std")]
use crate::grid::config::ColoredConfig;
#[cfg(feature = "std")]
impl<R, D> TableOption<R, ColoredConfig, D> for Borders<char> {
fn change(self, _: &mut R, cfg: &mut ColoredConfig, _: &mut D) {
cfg_clear_borders(cfg);
cfg.set_borders(self);
}
}
impl<R, D> TableOption<R, CompactConfig, D> for Borders<char> {
fn change(self, _: &mut R, cfg: &mut CompactConfig, _: &mut D) {
*cfg = cfg.set_borders(self);
}
}
impl<R, D> TableOption<R, CompactMultilineConfig, D> for Borders<char> {
fn change(self, _: &mut R, cfg: &mut CompactMultilineConfig, _: &mut D) {
cfg.set_borders(self);
}
}
#[cfg(feature = "std")]
fn cfg_clear_borders(cfg: &mut ColoredConfig) {
cfg.remove_borders();
cfg.remove_borders_colors();
cfg.remove_vertical_chars();
cfg.remove_horizontal_chars();
cfg.remove_color_line_horizontal();
cfg.remove_color_line_vertical();
}