use {
super::StyleMap,
termimad::{Alignment, LineStyle, MadSkin},
};
pub struct StatusMadSkinSet {
pub normal: MadSkin,
pub error: MadSkin,
}
fn make_normal_status_mad_skin(skin: &StyleMap) -> MadSkin {
let mut mad_skin = MadSkin::default();
mad_skin.paragraph = LineStyle {
compound_style: skin.status_normal.clone(),
align: Alignment::Left,
};
mad_skin.italic = skin.status_italic.clone();
mad_skin.bold = skin.status_bold.clone();
mad_skin.inline_code = skin.status_code.clone();
mad_skin.ellipsis = skin.status_ellipsis.clone();
mad_skin
}
fn make_error_status_mad_skin(skin: &StyleMap) -> MadSkin {
let mut mad_skin = MadSkin::default();
mad_skin.paragraph = LineStyle {
compound_style: skin.status_error.clone(),
align: Alignment::Left,
};
mad_skin.ellipsis = skin.status_ellipsis.clone();
mad_skin
}
impl StatusMadSkinSet {
pub fn from_skin(skin: &StyleMap) -> Self {
Self {
normal: make_normal_status_mad_skin(skin),
error: make_error_status_mad_skin(skin),
}
}
}