# Error Backtrace
This is a simple crate to debug where your errors are comming from.
## Installation
```sh
cargo add error-backtrace
```
## Usage
How this is supposed to be used:
```rust
fn main() -> Result<(), ()> {
let value = maybe_error()?;
// use value
Ok(())
}
fn maybe_error() -> Result<(), ()> {
let value = error_source().trace()?;
// Do something with value
Ok(())
}
fn error_source() -> Result<(), ()> {
Err(())
}
```
How this is **not** supposed to be used:
```rust
fn main() -> Result<(), ()> {
// Don't use trace() on every instance where there might be an error!
let value = maybe_error().trace()?;
Ok(())
}
fn maybe_error() -> Result<(), ()> {
let value = error_source().trace()?;
// Don't use it on errors from which you can recover!
let value2 = match recoverable_error().trace() {
Ok(x) => x,
Err(_) => ()
}
Ok(())
}
fn error_source() -> Result<(), ()> {
Err(())
}
fn recoverable_error() -> Result<(), ()> {
Err(())
}
```