RUC

Rust Util Collection, a simple and friendly error-chain, with many useful utils as an addition.

The painful experience of using error-chain gave birth to this project. It can adapt to almost all scenes without any special implementation.

Documents

shell make doc

Usage

Tips: you can easily implement your own Error type.

```rust use ruc::{err::*, *};

[derive(Debug, Eq, PartialEq)]

struct CustomErr(i32);

fn willpanic() { let l1 = || -> Result<()> { Err(eg!("The final error message!")) }; let l2 = || -> Result<()> { l1().c(d!()) }; let l3 = || -> Result<()> { l2().c(d!("A custom message!")) }; let l4 = || -> Result<()> { l3().c(d!("ERRUNKNOWN")) }; let l5 = || -> Result<()> { l4().c(d!(@CustomErr(-1))) };

pnk!(l5());

} ```

OutPut Sample

nocolor (features = "ansi")

```

2021-02-24 9:31:12 [idx: 0] [pid: 11843] [pidns: 4026531836]

Error: |-- file: src/lib.rs |-- line: 355 -- column: 9 Caused By: CustomErr(-1) |-- file: src/lib.rs |-- line: 353 -- column: 44 Caused By: ERR_UNKNOWN |-- file: src/lib.rs |-- line: 352 -- column: 44 Caused By: A custom message! |-- file: src/lib.rs |-- line: 351 -- column: 44 Caused By: |-- file: src/lib.rs |-- line: 350 -- column: 44 Caused By: The final error message! |-- file: src/lib.rs |-- line: 349 -- column: 41 ```

colorful

```

2021-02-24 9:31:13 [idx: 0] [pid: 12058] [pidns: 4026531836]

Error: ├── file: src/lib.rs ├── line: 355 └── column: 9 Caused By: CustomErr(-1) ├── file: src/lib.rs ├── line: 353 └── column: 44 Caused By: ERR_UNKNOWN ├── file: src/lib.rs ├── line: 352 └── column: 44 Caused By: A custom message! ├── file: src/lib.rs ├── line: 351 └── column: 44 Caused By: ├── file: src/lib.rs ├── line: 350 └── column: 44 Caused By: The final error message! ├── file: src/lib.rs ├── line: 349 └── column: 41 ```