skerry 0.1.7

Super Kool ERRors Yoh - A type-safe, zero-boilerplate error management framework.
Documentation
// #![skerry]

// extern crate self as skerry;
// pub use skerry::*;

// pub struct OuterErrorFromLib;

// #[skerry_mod]
// pub mod errors {
//     pub struct ErrA;
//     pub struct ErrB;
//     pub struct ErrC;
//     pub struct ErrD;
//     pub struct ErrE;
//     pub struct ErrF;

//     #[from]
//     pub struct Outer(OuterErrorFromLib);
// }

// fn my_fn1() -> Result<(), e![ErrA, ErrB, ErrC]> {
//     non_existent();
//     Err(MyFn1Error::ErrA(ErrA))
// }

// fn my_fn2() -> Result<(), e![ErrE, ErrF, Outer]> {
//     let r: std::result::Result<(), OuterErrorFromLib> = std::result::Result::Err(OuterErrorFromLib);
//     let _ = r?;

//     Ok(())
// }

// pub fn my_fn3() -> Result<(), e![ErrA, ErrB, ErrC, *MyFn2Error]> {
//     my_fn2()?;
//     my_fn1()?;
//     Ok(())
// }

// define_error!(DefineTest, [ErrA]);

// pub struct MyStruct;

// impl MyStruct {
//     pub fn struct_fn() -> Result<(), e![*DefineTest, *MyFn3Error]> {
//         my_fn3()?;
//         Ok(())
//     }

//     pub fn struct_fn_2() -> Result<(), e![*MyStructStructFnError]> {
//         Self::struct_fn()?;
//         Ok(())
//     }
// }

// trait TestTrait {
//     fn test() -> Result<(), e![ErrA, ErrB, *MyFn3Error]>;

//     fn test_2() -> Result<(), e![ErrA, ErrB, *MyFn3Error]> {
//         Ok(())
//     }
// }

// impl TestTrait for MyStruct {
//     fn test() -> Result<(), TestTraitTestError> {
//         my_fn3()?;
//         Ok(())
//     }
// }

// fn no_expand_func() -> Result<(), MyFn3Error> {
//     let r: Result<(), MyFn2Error> = Err(MyFn2Error::ErrE(ErrE));
//     Ok(r?)
// }

// #[test]
// pub fn test() {
//     let _ = my_fn3();
//     let _ = MyStruct::test();
//     let _ = MyStruct::test_2();
//     let _ = MyStruct::struct_fn_2();
//     let _ = no_expand_func();
// }