pub struct Builder { /* private fields */ }Expand description
A builder for Terror. Intended for one-time used, consumed after calling Builder::build.
Implementations
sourceimpl Builder
impl Builder
sourcepub fn short_message(self, msg: String) -> Builder
pub fn short_message(self, msg: String) -> Builder
Adds a short error message.
sourcepub fn short_message_str(self, msg: &str) -> Builder
pub fn short_message_str(self, msg: &str) -> Builder
Adds a short error message.
sourcepub fn error_code(self, code: String) -> Builder
pub fn error_code(self, code: String) -> Builder
Adds an error code.
sourcepub fn error_code_str(self, code: &str) -> Builder
pub fn error_code_str(self, code: &str) -> Builder
Adds an error code.
sourcepub fn add_text_detail(self, name: String, value: String) -> Builder
pub fn add_text_detail(self, name: String, value: String) -> Builder
Adds a text detail.
Examples
For instance,
use terror::{Builder, Terror};
let built = Terror::new(500, String::from("generic error"))
.add_text_detail(String::from("object_name"), String::from("server"))
.build();… may be rendered into a JSON like below:
{
"status" : 500,
"message" : "generic error",
"details" : {
"object_name" : "server"
}
}sourcepub fn add_text_detail_str_key(self, name: &str, value: String) -> Builder
pub fn add_text_detail_str_key(self, name: &str, value: String) -> Builder
A shorthand for Builder::add_text_detail,
which allows to pass the key name as &str.
sourcepub fn add_int_detail(self, name: String, value: i64) -> Builder
pub fn add_int_detail(self, name: String, value: i64) -> Builder
Adds a numeric detail.
Examples
For instance,
use terror::{Builder, Terror};
let built = Terror::new(500, String::from("generic error"))
.add_int_detail(String::from("object_id"), 922i64)
.build();… may be rendered into a JSON like below:
{
"status" : 500,
"message" : "generic error",
"details" : {
"object_id" : 922
}
}sourcepub fn add_int_detail_str_key(self, name: &str, value: i64) -> Builder
pub fn add_int_detail_str_key(self, name: &str, value: i64) -> Builder
A shorthand for Builder::add_int_detail,
which allows to pass the key name as &str.
sourcepub fn add_bool_detail(self, name: String, value: bool) -> Builder
pub fn add_bool_detail(self, name: String, value: bool) -> Builder
Adds a boolean detail.
Examples
For instance,
use terror::{Builder, Terror};
let built = Terror::new(500, String::from("generic error"))
.add_bool_detail(String::from("object_up"), false)
.build();… may be rendered into a JSON like below:
{
"status" : 500,
"message" : "generic error",
"details" : {
"object_up" : false
}
}sourcepub fn add_bool_detail_str_key(self, name: &str, value: bool) -> Builder
pub fn add_bool_detail_str_key(self, name: &str, value: bool) -> Builder
A shorthand for Builder::add_bool_detail,
which allows to pass the key name as &str.
sourcepub fn add_value_detail(self, name: String, value: Value) -> Builder
pub fn add_value_detail(self, name: String, value: Value) -> Builder
Adds an arbitrary object as detail. Requires to be passed as a pointer.
Examples
For instance,
use terror::{Builder, Terror};
use serde_json::{json, Value};
let built = Terror::new(500, String::from("generic error"))
.add_value_detail(
String::from("object"),
Value::from(json!({
"id" : 94i32,
"name" : "server"
}))
)
.build();… may be rendered into a JSON like below:
{
"status" : 500,
"message" : "generic error",
"details" : {
"object" : {
"id" : 94,
"name" : "server"
}
}
}sourcepub fn add_value_detail_str_key(self, name: &str, value: Value) -> Builder
pub fn add_value_detail_str_key(self, name: &str, value: Value) -> Builder
A shorthand for Builder::add_value_detail,
which allows to pass the key name as &str.