simple-error

crates.io Documentation Build Status Coverage Status

simple-error is a Rust library that provides a simple Error type backed by a String. It is best used when all you care about the error is an error string.

Documentation

Usage

To use simple-error, first add this to your Cargo.toml:

toml [dependencies] simple-error = "0.1"

Then add this to your crate root:

```rust

[macro_use]

extern crate simple_error; ```

Now you can use simple-error in different ways:

You can use it simply as a string error type:

rust fn do_foo() -> Result<(), SimpleError> { SimpleError::new("cannot do foo") }

You can use it to replace all error types if you only care about a string description:

rust fn do_bar() -> Result<(), SimpleError> { SimpleError::from(std::io::Error(io::ErrorKind::Other, "oh no")) }

Or you can chain all the errors, and get a complete error description at the top level:

```rust fn findtvremote() -> Result<(), SimpleError> { try_with!(std::fs::File::open("remotefile"), "failed to open remote file"); Ok(()) }

fn turnontv() -> Result<(), std::io::Error> { Ok(()) }

fn watchtv() -> Result<(), SimpleError> { trywith!(findtvremote(), "tv remote not found"); trywith!(turnon_tv(), "cannot turn on tv"); Ok(()) }

fn study() -> Result<(), SimpleError> { Ok(()) }

fn run() -> Result<(), SimpleError> { try!(study(), "cannot study"); try!(watch_tv(), "cannot watch tv") }

fn main() { if Err(e) = run() { println!("{}", e); } } // This prints out "cannot watch tv, tv remote not found, failed to open remote file, Text file busy" if the error is text file busy. ```