synd_term/types/
requirement_ext.rs

1use ratatui::{style::Style, text::Span};
2use synd_feed::types::Requirement;
3
4use crate::ui::theme::RequirementLabelTheme;
5
6pub trait RequirementExt {
7    fn label(&self, theme: &RequirementLabelTheme) -> Span<'static>;
8}
9
10impl RequirementExt for Requirement {
11    fn label(&self, theme: &RequirementLabelTheme) -> Span<'static> {
12        let (label, color) = match self {
13            Requirement::Must => ("MST", theme.must),
14            Requirement::Should => ("SHD", theme.should),
15            Requirement::May => ("MAY", theme.may),
16        };
17        Span::styled(label, Style::default().bg(color).fg(theme.fg))
18    }
19}