Compare commits
No commits in common. "master" and "v1.0" have entirely different histories.
27
src/lib.rs
27
src/lib.rs
@ -1,4 +1,3 @@
|
||||
#[inline(always)]
|
||||
fn print_printable_or_dot(chunk: &[u8]) {
|
||||
for (idx, byte) in chunk.iter().enumerate() {
|
||||
if idx > 0 && idx % 8 == 0 {
|
||||
@ -13,37 +12,16 @@ fn print_printable_or_dot(chunk: &[u8]) {
|
||||
}
|
||||
}
|
||||
|
||||
#[inline(always)]
|
||||
fn print_offset(offset: usize) {
|
||||
print!("{offset:08x} ");
|
||||
print!("{:08x} ", offset);
|
||||
}
|
||||
|
||||
#[inline(always)]
|
||||
fn print_data_hex(chunk: &[u8]) {
|
||||
for (idx, byte) in chunk.iter().enumerate() {
|
||||
if idx > 0 && idx % 8 == 0 {
|
||||
print!(" ");
|
||||
}
|
||||
print!("{byte:02x} ");
|
||||
}
|
||||
}
|
||||
|
||||
#[inline(always)]
|
||||
fn print_padding(chunk_len: usize) {
|
||||
// only needs padding if we have less than 16 bytes to show
|
||||
if chunk_len >= 16 {
|
||||
return;
|
||||
}
|
||||
|
||||
// padding is 3 spaces per missing byte
|
||||
for _ in 0..(16 - chunk_len) {
|
||||
print!(" ");
|
||||
}
|
||||
|
||||
// if 8 or more bytes are missing we also need pad the space between
|
||||
// 8-bytes left and 8-bytes right
|
||||
if chunk_len <= 8 {
|
||||
print!(" ");
|
||||
print!("{:02x} ", byte);
|
||||
}
|
||||
}
|
||||
|
||||
@ -55,7 +33,6 @@ pub fn print_hex(data: &[u8]) {
|
||||
for chunk in chunks {
|
||||
print_offset(offset);
|
||||
print_data_hex(chunk);
|
||||
print_padding(chunk.len());
|
||||
print_printable_or_dot(chunk);
|
||||
println!();
|
||||
offset += 16;
|
||||
|
Loading…
x
Reference in New Issue
Block a user