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.
``` [features] default = ["ansi"] ansi = [] compact = []
rich = ["uau", "cmd"] uau = ["nix", "rand"] cmd = [] ```
shell
make doc
Tips: you can easily implement your own
Error
type.
```rust use ruc::{err::*, *};
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());
} ```
features = ["ansi"]
```
ERROR: ...
|-- file: src/lib.rs
|-- line: 270
-- column: 9
Caused By: ...
|-- file: src/lib.rs
|-- line: 264
-- column: 16
Caused By: CustomErr(-1)
|-- file: src/lib.rs
|-- line: 262
-- column: 44
Caused By: ERR_UNKNOWN
|-- file: src/lib.rs
|-- line: 261
-- column: 44
Caused By: A custom message!
|-- file: src/lib.rs
|-- line: 260
-- column: 44
Caused By: ...
|-- file: src/lib.rs
|-- line: 259
-- column: 69
Caused By: The final error message!
|-- file: src/lib.rs
|-- line: 258
`-- column: 41
```
```
ERROR: ... ├── file: src/lib.rs ├── line: 270 └── column: 9 Caused By: ... ├── file: src/lib.rs ├── line: 264 └── column: 16 Caused By: CustomErr(-1) ├── file: src/lib.rs ├── line: 262 └── column: 44 Caused By: ERR_UNKNOWN ├── file: src/lib.rs ├── line: 261 └── column: 44 Caused By: A custom message! ├── file: src/lib.rs ├── line: 260 └── column: 44 Caused By: ... ├── file: src/lib.rs ├── line: 259 └── column: 69 Caused By: The final error message! ├── file: src/lib.rs ├── line: 258 └── column: 41 ```
features = ["compact"]
```
```