mirror of
https://github.com/sharkdp/hexyl.git
synced 2026-10-26 20:16:31 +00:00
Change endianness from boolean type to enum
This commit is contained in:
1 parent
dd601e4792
commit
08b903270f
2 files changed
+22
-13
No files matched your search
+8
-4
@@ -17,7 +17,7 @@ use thiserror::Error as ThisError;
|
||||
|
||||
use terminal_size::terminal_size;
|
||||
|
||||
use hexyl::{Base, BorderStyle, Input, PrinterBuilder};
|
||||
use hexyl::{Base, BorderStyle, Endianness, Input, PrinterBuilder};
|
||||
|
||||
const DEFAULT_BLOCK_SIZE: i64 = 512;
|
||||
|
||||
@@ -434,9 +434,13 @@ fn run() -> Result<()> {
|
||||
)
|
||||
};
|
||||
|
||||
let little_endian_dump = *matches
|
||||
let endianness = match *matches
|
||||
.get_one::<bool>("little_endian_dump")
|
||||
.unwrap_or(&false);
|
||||
.unwrap_or(&false)
|
||||
{
|
||||
true => Endianness::Little,
|
||||
false => Endianness::Big,
|
||||
};
|
||||
let stdout = io::stdout();
|
||||
let mut stdout_lock = BufWriter::new(stdout.lock());
|
||||
|
||||
@@ -449,7 +453,7 @@ fn run() -> Result<()> {
|
||||
.num_panels(panels)
|
||||
.group_size(group_size)
|
||||
.with_base(base)
|
||||
.little_endian_dump(little_endian_dump)
|
||||
.endianness(endianness)
|
||||
.build();
|
||||
printer.display_offset(skip_offset + display_offset);
|
||||
printer.print_all(&mut reader).map_err(|e| anyhow!(e))?;
|
||||
|
||||
+14
-9
@@ -29,6 +29,11 @@ pub enum ByteCategory {
|
||||
NonAscii,
|
||||
}
|
||||
|
||||
pub enum Endianness {
|
||||
Little,
|
||||
Big,
|
||||
}
|
||||
|
||||
#[derive(PartialEq)]
|
||||
enum Squeezer {
|
||||
Print,
|
||||
@@ -159,7 +164,7 @@ pub struct PrinterBuilder<'a, Writer: Write> {
|
||||
panels: u64,
|
||||
group_size: u8,
|
||||
base: Base,
|
||||
little_endian_dump: bool,
|
||||
endianness: Endianness,
|
||||
}
|
||||
|
||||
impl<'a, Writer: Write> PrinterBuilder<'a, Writer> {
|
||||
@@ -174,7 +179,7 @@ impl<'a, Writer: Write> PrinterBuilder<'a, Writer> {
|
||||
panels: 2,
|
||||
group_size: 1,
|
||||
base: Base::Hexadecimal,
|
||||
little_endian_dump: false,
|
||||
endianness: Endianness::Big,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -218,8 +223,8 @@ impl<'a, Writer: Write> PrinterBuilder<'a, Writer> {
|
||||
self
|
||||
}
|
||||
|
||||
pub fn little_endian_dump(mut self, little_endian_dump: bool) -> Self {
|
||||
self.little_endian_dump = little_endian_dump;
|
||||
pub fn endianness(mut self, endianness: Endianness) -> Self {
|
||||
self.endianness = endianness;
|
||||
self
|
||||
}
|
||||
|
||||
@@ -234,7 +239,7 @@ impl<'a, Writer: Write> PrinterBuilder<'a, Writer> {
|
||||
self.panels,
|
||||
self.group_size,
|
||||
self.base,
|
||||
self.little_endian_dump,
|
||||
self.endianness,
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -263,7 +268,7 @@ pub struct Printer<'a, Writer: Write> {
|
||||
/// The number of digits used to write the base.
|
||||
base_digits: u8,
|
||||
/// Whether to print the bytes in little endian
|
||||
little_endian_dump: bool,
|
||||
endianness: Endianness,
|
||||
}
|
||||
|
||||
impl<'a, Writer: Write> Printer<'a, Writer> {
|
||||
@@ -277,7 +282,7 @@ impl<'a, Writer: Write> Printer<'a, Writer> {
|
||||
panels: u64,
|
||||
group_size: u8,
|
||||
base: Base,
|
||||
little_endian_dump: bool,
|
||||
endianness: Endianness,
|
||||
) -> Printer<'a, Writer> {
|
||||
Printer {
|
||||
idx: 0,
|
||||
@@ -315,7 +320,7 @@ impl<'a, Writer: Write> Printer<'a, Writer> {
|
||||
Base::Decimal => 3,
|
||||
Base::Hexadecimal => 2,
|
||||
},
|
||||
little_endian_dump,
|
||||
endianness,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -550,7 +555,7 @@ impl<'a, Writer: Write> Printer<'a, Writer> {
|
||||
pub fn print_bytes(&mut self) -> io::Result<()> {
|
||||
let mut buf = self.line_buf.clone();
|
||||
|
||||
if self.little_endian_dump {
|
||||
if matches!(self.endianness, Endianness::Little) {
|
||||
// reorder the buffer to the little endian format
|
||||
self.reorder_buf_to_le(&mut buf);
|
||||
};
|
||||
|
||||
Reference in new issue
Block a user