This commit is contained in:
sharkdp committed 2018-11-05 23:53:54 +01:00
1 parent ea3fc0caee
commit 3761508571
1 file changed
+25 -20
+25 -20
View File
@@ -91,18 +91,22 @@ impl<'a> Printer<'a> {
fn header(&mut self) { fn header(&mut self) {
writeln!( writeln!(
self.stdout, self.stdout,
"┌{}┬{}┐", "┌{}┬{}┬{}┬{}┐",
"─".repeat(3 * 16 + 2), "─".repeat(3 * 8 + 1),
"─".repeat(16 + 3) "─".repeat(3 * 8 + 1),
"─".repeat(8),
"─".repeat(8)
); );
} }
fn footer(&mut self) { fn footer(&mut self) {
writeln!( writeln!(
self.stdout, self.stdout,
"└{}┴{}┘", "└{}┴{}┴{}┴{}┘",
"─".repeat(3 * 16 + 2), "─".repeat(3 * 8 + 1),
"─".repeat(16 + 3) "─".repeat(3 * 8 + 1),
"─".repeat(8),
"─".repeat(8)
); );
} }
@@ -116,7 +120,7 @@ impl<'a> Printer<'a> {
self.line.push(b); self.line.push(b);
match self.idx % 16 { match self.idx % 16 {
8 => write!(self.stdout, " ")?, 8 => write!(self.stdout, "┊ ")?,
0 => { 0 => {
self.print_textline()?; self.print_textline()?;
} }
@@ -135,31 +139,32 @@ impl<'a> Printer<'a> {
return Ok(()); return Ok(());
} }
let fill_spaces_front = match len { if len < 8 {
n if n < 8 => 1 + 3 * (16 - n), write!(self.stdout, "{}┊{}│", " ".repeat(3 * (8 - len)),
n => 3 * (16 - n), " ".repeat(1 + 3 * 8)
}; )?;
} else {
write!(self.stdout, "{}│", " ".repeat(3 * (16 - len)))?;
}
let fill_spaces_back = match len {
n if n < 8 => 1 + (16 - n),
n => 16 - n,
};
write!(self.stdout, "{}│ ", " ".repeat(fill_spaces_front))?; let mut idx = 1;
let mut idx = 0;
for b in self.line.iter().map(|b| Byte(*b)) { for b in self.line.iter().map(|b| Byte(*b)) {
let chr = format!("{}", b.as_char()); let chr = format!("{}", b.as_char());
write!(self.stdout, "{}", b.color().paint(chr)).ok(); write!(self.stdout, "{}", b.color().paint(chr)).ok();
if idx == 8 { if idx == 8 {
write!(self.stdout, " "); write!(self.stdout, "┊");
} }
idx += 1; idx += 1;
} }
writeln!(self.stdout, "{} │", " ".repeat(fill_spaces_back)); if len < 8 {
writeln!(self.stdout, "{}┊{}│ ", " ".repeat(8 - len), " ".repeat(8))?;
} else {
writeln!(self.stdout, "{}│", " ".repeat(16 - len))?;
}
self.line.clear(); self.line.clear();