use crate::*; pub struct Field(pub ItemPalette, pub T, pub U) where T: AsRef + Send + Sync, U: AsRef + Send + Sync; impl Content for Field where T: AsRef + Send + Sync, U: AsRef + Send + Sync { fn content (&self) -> impl Render { let ItemPalette { darkest, dark, lighter, lightest, .. } = self.0; row!( Tui::fg_bg(dark.rgb, darkest.rgb, "▐"), Tui::fg_bg(lighter.rgb, dark.rgb, Tui::bold(true, format!("{}", self.1.as_ref()))), Tui::fg_bg(dark.rgb, darkest.rgb, "▌"), Tui::fg_bg(lightest.rgb, darkest.rgb, format!("{} ", self.2.as_ref())) ) } } pub struct FieldV(pub ItemPalette, pub T, pub U) where T: AsRef + Send + Sync, U: AsRef + Send + Sync; impl Content for FieldV where T: AsRef + Send + Sync, U: AsRef + Send + Sync { fn content (&self) -> impl Render { let ItemPalette { darkest, dark, lighter, lightest, .. } = self.0; let sep1 = Tui::bg(darkest.rgb, Tui::fg(dark.rgb, "▐")); let sep2 = Tui::bg(darkest.rgb, Tui::fg(dark.rgb, "▌")); let name = Tui::bg(dark.rgb, Tui::fg(lighter.rgb, Tui::bold(true, format!("{}", self.1.as_ref())))); let value = Tui::bg(darkest.rgb, Tui::fg(lightest.rgb, format!(" {} ", self.2.as_ref()))); Bsp::e(Bsp::s(row!(sep1, name, sep2), value), " ") } }