mirror of
https://codeberg.org/unspeaker/tengri.git
synced 2025-12-08 12:46:44 +01:00
26 lines
1.2 KiB
Rust
26 lines
1.2 KiB
Rust
use crate::*;
|
|
|
|
pub struct FieldH<T, U>(pub ItemTheme, pub T, pub U);
|
|
impl<T: Content<TuiOut>, U: Content<TuiOut>> Content<TuiOut> for FieldH<T, U> {
|
|
fn content (&self) -> impl Render<TuiOut> {
|
|
let Self(ItemTheme { darkest, dark, lighter, lightest, .. }, title, value) = self;
|
|
row!(
|
|
Tui::fg_bg(dark.rgb, darkest.rgb, "▐"),
|
|
Tui::fg_bg(lighter.rgb, dark.rgb, Tui::bold(true, title)),
|
|
Tui::fg_bg(dark.rgb, darkest.rgb, "▌"),
|
|
Tui::fg_bg(lightest.rgb, darkest.rgb, value),
|
|
)
|
|
}
|
|
}
|
|
|
|
pub struct FieldV<T, U>(pub ItemTheme, pub T, pub U);
|
|
impl<T: Content<TuiOut>, U: Content<TuiOut>> Content<TuiOut> for FieldV<T, U> {
|
|
fn content (&self) -> impl Render<TuiOut> {
|
|
let Self(ItemTheme { darkest, dark, lighter, lightest, .. }, title, value) = self;
|
|
let sep1 = Tui::bg(darkest.rgb, Tui::fg(dark.rgb, "▐"));
|
|
let sep2 = Tui::bg(darkest.rgb, Tui::fg(dark.rgb, "▌"));
|
|
let title = Tui::bg(dark.rgb, Tui::fg(lighter.rgb, Tui::bold(true, title)));
|
|
let value = Tui::bg(darkest.rgb, Tui::fg(lightest.rgb, value));
|
|
Bsp::e(Bsp::s(row!(sep1, title, sep2), value), " ")
|
|
}
|
|
}
|