Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/hawkw/eliza_error


https://github.com/hawkw/eliza_error

Last synced: 10 days ago
JSON representation

Awesome Lists containing this project

README

        

> “Times are bad. Children no longer obey their parents, and everyone is
> writing an error handling library.”
> — Cicero

fast, cheap, and out of control exceptions for rust.

# Usage

First, add this to your `Cargo.toml`:
```toml
[dependencies]
eliza_error = "0.99.0";
```

You can now throw exceptions!

```rust
use eliza_error::{Error, throw};

fn my_great_function() -> Result<(), Error> {
if is_everything_terrible() {
throw!("everything is terrible!");
}
Ok(())
}
```

Eliza errors also work fine with errors from the standard library.

```rust
use eliza_error::{Error, throw};
use std::fs::File;
use std::io::prelude::*;

fn look_at_file() -> Result<(), Error> {
let mut file = File::open("this_file_doesnt_exist.txt")?;
let mut contents = String::new();
file.read_to_string(&mut contents)?;
if contents == "everything is terrible!!!" {
throw!("wow, everything is still terrible!!!");
}
Ok(())
}
```

# Why should I use this?

- `eliza_error` has no dependencies!
- `eliza_error` can throw exceptions!
- `eliza_error` [will support backtraces soon][backtrace]!

[backtrace]: https://github.com/rust-lang/rust/issues/53487