From b251575d94b74cd789a0f9ae4eb3f5eaae605e3e Mon Sep 17 00:00:00 2001 From: RinHizakura Date: Mon, 24 Apr 2023 23:44:49 +0800 Subject: [PATCH] Change design for endianness command line option --- src/bin/hexyl.rs | 23 ++++++++++++----------- src/lib.rs | 2 +- tests/integration_tests.rs | 6 +++--- 3 files changed, 16 insertions(+), 15 deletions(-) diff --git a/src/bin/hexyl.rs b/src/bin/hexyl.rs index f48879e..99554cb 100644 --- a/src/bin/hexyl.rs +++ b/src/bin/hexyl.rs @@ -205,12 +205,15 @@ fn run() -> Result<()> { ), ) .arg( - Arg::new("little_endian_dump") - .short('e') - .action(ArgAction::SetTrue) + Arg::new("endianness") + .long("endianness") + .requires("group_size") + .num_args(1) + .value_name("ENDIANNESS") + .value_parser(["big", "little"]) + .default_value("big") .help( - "Print out the data in little endian format. Otherwise the data will be shown \ - in big endian format by default.", + "Whether to print out the data in little endian format or big endian format.", ), ); @@ -434,12 +437,10 @@ fn run() -> Result<()> { ) }; - let endianness = match *matches - .get_one::("little_endian_dump") - .unwrap_or(&false) - { - true => Endianness::Little, - false => Endianness::Big, + let endianness = match matches.get_one::("endianness").map(String::as_ref) { + Some("little") => Endianness::Little, + Some("big") => Endianness::Big, + _ => unreachable!(), }; let stdout = io::stdout(); let mut stdout_lock = BufWriter::new(stdout.lock()); diff --git a/src/lib.rs b/src/lib.rs index 4aaf65a..6ee6ec6 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -557,7 +557,7 @@ impl<'a, Writer: Write> Printer<'a, Writer> { if matches!(self.endianness, Endianness::Little) { // reorder the buffer to the little endian format - self.reorder_buf_to_le(&mut buf); + self.reorder_buf_to_little_endian(&mut buf); }; for (i, &b) in buf.iter().enumerate() { diff --git a/tests/integration_tests.rs b/tests/integration_tests.rs index 297cce1..fc10dfa 100644 --- a/tests/integration_tests.rs +++ b/tests/integration_tests.rs @@ -317,7 +317,7 @@ mod group_and_endianness { .arg("ascii") .arg("--color=never") .arg("--group-size=2") - .arg("-e") + .arg("--endianness=little") .assert() .success() .stdout( @@ -348,7 +348,7 @@ mod group_and_endianness { .arg("ascii") .arg("--color=never") .arg("--group-size=4") - .arg("-e") + .arg("--endianness=little") .assert() .success() .stdout( @@ -379,7 +379,7 @@ mod group_and_endianness { .arg("ascii") .arg("--color=never") .arg("--group-size=8") - .arg("-e") + .arg("--endianness=little") .assert() .success() .stdout(