README

ErrJson: easy complex and intuitive Rust Error json

Usage

rust use errjson::*; fn myfnc() -> Result<i32, Box<dyn std::error::Error>> { ErrJson!(code = "ERR001", message = "An error message") }

return a valid Rust Error with a json stringify

json { "iserr":true, "err":{ "code":"ERR001", "message":"An error message" } }

You can also embed cascading errors and get a json that looks like this (full example code)

json { "meta": { "whoami": { "filename": "errjson/examples/full.rs", "function": "main", "line": 42 } }, "iserr": true, "err": { "code": "ERR0001", "message": "Error when main() call myfnc()", "origin": { "meta": { "whoami": { "filename": "errjson/examples/full.rs", "function": "myfnc", "line": 26 } }, "iserr": true, "err": { "code": "ERR0002", "message": "Error when myfnc() call mysubfnc()", "origin": { "meta": { "whoami": { "filename": "errjson/examples/full.rs", "function": "mysubfnc", "line": 11 } }, "iserr": true, "err": { "code": "ERR003", "message": "Error when mysubfnc() call mysubsubfnc()", "origin": "No such file or directory (os error 2)" }, } }, } }, }

Examples

 Why ErrJson ?

Without ErrJson, you can can write basic Err like this, but hard with a complex json, not normalize and difficult to embed 'caused' error.