8 releases (3 major breaking)
3.0.1 | Mar 10, 2024 |
---|---|
3.0.0 | Dec 14, 2023 |
2.1.4 | Dec 14, 2023 |
1.1.4 | Dec 14, 2023 |
0.1.2 | May 18, 2022 |
#781 in Encoding
24KB
546 lines
Overview
TError (as in Typical Error) is a small library that exposes a configurable and uniform response body representation for typical REST services. It covers most basic aspects such as returned status code, messages, detailed error data and so on.
Getting started
To enable terror
, simply add it to your Cargo.toml
:
terror = "3.0.1"
And then start hacking in the code:
fn main() {
let error = Terror::new(500, String::format("generic server error"))
.build();
}
You can also add some flavour to it, for example, an error code:
fn main() {
let error = Terror::new(500, String::format("generic server error"))
.error_code("error.internal")
.build();
}
Architecture
terror
is built with Rust 1.60.
It's a general intention of terror
to be serialized into JSON. Therefore, it's designed to be compatible with
serde
. As for the rest, terror
tries to enforce as little dependencies as possible.
Features
It's sometimes convenient to add some extra metadata to your error responses; terror
offers 3 such things
out-of-the-box:
feature | notion | backend |
---|---|---|
err_id |
V4 UUID error ID | uuid |
time |
ISO-8601 error timestamp at UTC | chrono |
mdn |
a link to MDN reference about status code | n/a |
Dependencies
~0.7–2MB
~40K SLoC