Change design for endianness command line option

This commit is contained in:
RinHizakura committed 2023-04-24 23:44:49 +08:00
1 parent 58b038af27
commit b251575d94
3 files changed
+16 -15

No files matched your search

+12 -11
View File
@@ -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::<bool>("little_endian_dump")
.unwrap_or(&false)
{
true => Endianness::Little,
false => Endianness::Big,
let endianness = match matches.get_one::<String>("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());
+1 -1
View File
@@ -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() {
+3 -3
View File
@@ -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(