use std::borrow::Cow;
use crate::themes::Theme;
#[derive(Default, Copy, Clone, Debug)]
pub struct SignsTheme {}
impl Theme for SignsTheme {
fn equal_prefix<'this>(&self) -> Cow<'this, str> {
" ".into()
}
fn delete_prefix<'this>(&self) -> Cow<'this, str> {
"-".into()
}
fn insert_prefix<'this>(&self) -> Cow<'this, str> {
"+".into()
}
fn header<'this>(&self) -> Cow<'this, str> {
format!("{} | {}\n", "--- remove", "insert +++").into()
}
}
#[cfg(test)]
mod tests {
use super::*;
use std::borrow::Cow;
#[test]
fn test_signs_theme_prefixes() {
let theme = SignsTheme::default();
assert_eq!(theme.equal_prefix(), Cow::Borrowed(" "));
assert_eq!(theme.delete_prefix(), Cow::Borrowed("-"));
assert_eq!(theme.insert_prefix(), Cow::Borrowed("+"));
}
#[test]
fn test_signs_theme_header() {
let theme = SignsTheme::default();
assert_eq!(theme.header(), Cow::Borrowed("--- remove | insert +++\n"));
}
#[test]
fn test_signs_theme_defaults() {
let theme = SignsTheme::default();
assert_eq!(theme.line_end(), Cow::Borrowed("\n"));
assert_eq!(theme.trailing_lf_marker(), Cow::Borrowed("␊"));
}
}