hex-display 0.4.0

Display impl for byte slices which provides a hexdump
Documentation
hex-display
----
[![crates.io](https://img.shields.io/crates/v/hex-display.svg)](https://crates.io/crates/hex-display)

An implementation of Display on a wrapper for `&[u8]` which provides a hex string or hexdump (see
[`Hex`] and [`HexDisplayExt`]). This crate also works in `no_std` environments.

If `alloc` is present, it can also convert either output mode to a string.

## Example usage

```rust
use hex_display::HexDisplayExt;

assert_eq!(
    format!("{}", [0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef].hex()),
    "0123456789abcdef"
);
#[cfg(feature = "alloc")]
assert_eq!(
    [0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef].to_hex_string(),
    "0123456789abcdef"
);
#[cfg(feature = "alloc")]
assert_eq!(
    [0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef].to_hex_dump(),
    "00000000  01 23 45 67 89 ab cd ef                           |.#Eg....|",
);
```

## Minimum Supported Rust Version
The MSRV is as defined in the `Cargo.toml` file. It may increase in minor versions, but will always
remain at least a year ago.

## Comparison with other crates

* [`hex`]https://docs.rs/hex/latest/hex/ requires you allocate enough space for the entire string
  in memory, either by giving it a long enough slice or a dynamic memory allocator, and only gives
  hex strings, not hexdumps. It also provides decoding from a hex string.
* [`faster_hex`]https://docs.rs/faster-hex/latest/faster_hex/ and
  [`hex_simd`]https://lib.rs/crates/hex-simd present similar APIs but provide SIMD-accelerated
  methods if you need maximal performance.
* [`data_encoding`]https://docs.rs/data-encoding/latest/data_encoding/ can use a
  [`core::fmt::Display`] implementation to construct without preallocating, but doesn't implement
  hexdumps.