Erich Gubler 2bdf5d768f feat: use anyhow for more structured error messages and better error reporting flexibility
This significantly changes the structure of potential output of
top-level errors.  Before, errors that have a `source` were printed on a
single line, with the `source` omitted. Now, an error with a `source`
will be printed like:

```
Error: <`Display` impl of error>

Caused by:
    <`Display` impl of `source` error>
```

If there are multiple `source` errors in a chain, then it will be of the
form:

```
Error: <`Display` impl of error>

Caused by:
    0: <`Display` impl of first `source` error>
    1: <`Display` impl of `source` of `source` error>
    # etc.
```

Now, in practice this never happened before, since the only error
type that ever could return from `<binary>::run` was `std::io::Error`,
which has no `source`. However, `source`s can start being added if, say,
future work involved using `anyhow::Context::context` or custom errors
that implement `std::Error::source` are added to the codebase. I believe
this is a good choice going forward, but I definitely want to foster
discussion and acceptance for it in the open first!
2020-06-17 18:05:42 +02:00
2018-11-06 21:20:43 +01:00
2018-11-08 20:03:11 +01:00
2020-03-09 20:23:46 +01:00
2020-06-07 15:14:14 +02:00
2020-06-07 15:12:35 +02:00
2020-06-07 15:57:20 +02:00

Build Status

hexyl is a simple hex viewer for the terminal. It uses a colored output to distinguish different categories of bytes (NULL bytes, printable ASCII characters, ASCII whitespace characters, other ASCII characters and non-ASCII).

Preview

Installation

On Ubuntu

... and other Debian-based Linux distributions.

If you run Ubuntu 19.10 (Eoan Ermine) or newer, you can install the officially maintained package:

sudo apt install hexyl

If you use an older version of Ubuntu, you can download the latest .deb package from the release page and install it via:

sudo dpkg -i hexyl_0.8.0_amd64.deb  # adapt version number and architecture

On Debian

If you run Debian Buster or newer, you can install the officially maintained Debian package:

sudo apt-get install hexyl

If you run an older version of Debian, see above for instructions on how to manually install hexyl.

On Arch Linux

You can install hexyl from the official package repository:

pacman -S hexyl

On Void Linux

xbps-install hexyl

On macOS

brew install hexyl

On FreeBSD

pkg install hexyl

Via Nix

nix-env -i hexyl

On other distributions

Check out the release page for binary builds.

On Windows

For now, you will have to install from source via cargo (see below). Make sure that you use a terminal that supports ANSI escape sequences (like ConHost v2 since Windows 10 1703 or Windows Terminal since Windows 10 1903).

Via cargo

If you have Rust 1.36 or higher, you can install hexyl from source via cargo:

cargo install hexyl

License

Licensed under either of

at your option.

S
Description
No description provided
Readme
1.7 MiB
0 Stars 1 Watchers 0 Forks
Languages
Rust 100%