uerr 0.1.0

A crate which provides stunning visual error handling.
Documentation
# uerr
`uerr` is a crate which provides stunning visual error handling.

# Showcase
Using the code below, we can display a simple error and show it to the user.

```rust
use uerr::UserError;

#[test]
fn sample_error() {
    UserError::from("could not open file")
        .and_reason("The system cannot find the file specified.")
        .and_help("Does this file exist?")
        .print_all("uerr/error: ");
}
```
### Output
```text
uerr/error: could not open file
 - caused by: The system cannot find the file specified.
 + help: Does this file exist?
```

## With multiple arguments
```text
program.exe: could not open file
 - caused by: The system cannot find the file specified.
     |        Filler reason.
 + help: Does this file exist?
     |   Filler help.
```
<details>
<summary>Click to see the code.</summary>

```rust
#[test]
fn sample_error() {
    UserError::from("could not open file")
        .and_reason("The system cannot find the file specified.")
        .and_reason("Filler reason.")
        .and_help("Does this file exist?")
        .and_help("Filler help.")
        .print_all("program.exe: ");
}
```
</details>

# Exiting with errors
The `UserError` struct also supports inline exiting.

```rust
#[test]
fn sample_error() {
    UserError::from("Sample Error")
        .print_all("my program: ")
        .exit(-1);
}
```