thisctx 0.4.0

Easily create error with contexts
Documentation
use thisctx::{IntoError, WithContext};

#[derive(Debug, Eq, PartialEq)]
struct HelloWorld(&'static str);

impl Default for HelloWorld {
    fn default() -> Self {
        Self("Hello, world!")
    }
}

#[derive(Debug, Eq, PartialEq, WithContext)]
enum Error {
    NoneSource(&'static str),
}

#[test]
fn from_context() {
    assert_eq!(
        Error::from(NoneSource("Hello, thisctx!")),
        Error::NoneSource("Hello, thisctx!"),
    );
}

#[test]
fn into_error() {
    assert_eq!(
        NoneSource("Hello, world!").build(),
        Error::NoneSource("Hello, world!"),
    );
    assert_eq!(
        NoneSource("Hello, world!").fail::<()>(),
        Err(Error::NoneSource("Hello, world!")),
    );
}