summaryrefslogtreecommitdiffstats
path: root/src/delta.rs
diff options
context:
space:
mode:
authorDan Davison <dandavison7@gmail.com>2020-05-29 18:34:02 -0400
committerDan Davison <dandavison7@gmail.com>2020-05-30 16:55:38 -0400
commitf5e7b066f49f1cbc7bd27e41ee43adae951066ce (patch)
tree71337d81efd3db525f510219ed5068df6cd3da14 /src/delta.rs
parent533c991e451dfd636f6ceb3661df4dfeacaae4f9 (diff)
Make decoration style non-optional
Diffstat (limited to 'src/delta.rs')
-rw-r--r--src/delta.rs43
1 files changed, 23 insertions, 20 deletions
diff --git a/src/delta.rs b/src/delta.rs
index 86720418..0db2d2c6 100644
--- a/src/delta.rs
+++ b/src/delta.rs
@@ -5,7 +5,6 @@ use console::strip_ansi_codes;
use std::io::BufRead;
use unicode_segmentation::UnicodeSegmentation;
-use crate::cli::unreachable;
use crate::config::Config;
use crate::draw;
use crate::paint::Painter;
@@ -191,25 +190,27 @@ fn handle_commit_meta_header_line(
let decoration_ansi_term_style;
let mut pad = false;
let draw_fn = match config.commit_style.decoration_style {
- Some(DecorationStyle::Box(style)) => {
+ DecorationStyle::Box(style) => {
pad = true;
decoration_ansi_term_style = style;
draw::write_boxed_with_line
}
- Some(DecorationStyle::Underline(style)) => {
+ DecorationStyle::Underline(style) => {
decoration_ansi_term_style = style;
draw::write_underlined
}
- Some(DecorationStyle::Overline(style)) => {
+ DecorationStyle::Overline(style) => {
decoration_ansi_term_style = style;
draw::write_overlined
}
- Some(DecorationStyle::Underoverline(style)) => {
+ DecorationStyle::Underoverline(style) => {
decoration_ansi_term_style = style;
draw::write_underoverlined
}
- Some(DecorationStyle::NoDecoration) => return Ok(()),
- None => unreachable("Unreachable code path reached in handle_commit_meta_header_line."),
+ DecorationStyle::NoDecoration => {
+ decoration_ansi_term_style = ansi_term::Style::new();
+ draw::write_no_decoration
+ }
};
draw_fn(
painter.writer,
@@ -242,26 +243,26 @@ fn handle_generic_file_meta_header_line(
let decoration_ansi_term_style;
let mut pad = false;
let draw_fn = match config.file_style.decoration_style {
- Some(DecorationStyle::Box(style)) => {
+ DecorationStyle::Box(style) => {
pad = true;
decoration_ansi_term_style = style;
draw::write_boxed_with_line
}
- Some(DecorationStyle::Underline(style)) => {
+ DecorationStyle::Underline(style) => {
decoration_ansi_term_style = style;
draw::write_underlined
}
- Some(DecorationStyle::Overline(style)) => {
+ DecorationStyle::Overline(style) => {
decoration_ansi_term_style = style;
draw::write_overlined
}
- Some(DecorationStyle::Underoverline(style)) => {
+ DecorationStyle::Underoverline(style) => {
decoration_ansi_term_style = style;
draw::write_underoverlined
}
- Some(DecorationStyle::NoDecoration) => return Ok(()),
- None => {
- unreachable("Unreachable code path reached in handle_generic_file_meta_header_line.")
+ DecorationStyle::NoDecoration => {
+ decoration_ansi_term_style = ansi_term::Style::new();
+ draw::write_no_decoration
}
};
writeln!(painter.writer)?;
@@ -285,24 +286,26 @@ fn handle_hunk_header_line(
) -> std::io::Result<()> {
let decoration_ansi_term_style;
let draw_fn = match config.hunk_header_style.decoration_style {
- Some(DecorationStyle::Box(style)) => {
+ DecorationStyle::Box(style) => {
decoration_ansi_term_style = style;
draw::write_boxed
}
- Some(DecorationStyle::Underline(style)) => {
+ DecorationStyle::Underline(style) => {
decoration_ansi_term_style = style;
draw::write_underlined
}
- Some(DecorationStyle::Overline(style)) => {
+ DecorationStyle::Overline(style) => {
decoration_ansi_term_style = style;
draw::write_overlined
}
- Some(DecorationStyle::Underoverline(style)) => {
+ DecorationStyle::Underoverline(style) => {
decoration_ansi_term_style = style;
draw::write_underoverlined
}
- Some(DecorationStyle::NoDecoration) => return Ok(()),
- None => unreachable("Unreachable code path reached in handle_hunk_header_line."),
+ DecorationStyle::NoDecoration => {
+ decoration_ansi_term_style = ansi_term::Style::new();
+ draw::write_no_decoration
+ }
};
let (raw_code_fragment, line_number) = parse::parse_hunk_metadata(&line);
let line = match prepare(raw_code_fragment, false, config) {