Struct http_api_problem::ApiErrorBuilder
source · pub struct ApiErrorBuilder {
pub status: StatusCode,
pub title: Option<String>,
pub message: Option<String>,
pub type_url: Option<String>,
pub instance: Option<String>,
pub fields: HashMap<String, Value>,
pub extensions: Extensions,
pub source: Option<Box<dyn Error + Send + Sync + 'static>>,
}Fields§
§status: StatusCodeThe suggested status code for the server to be returned to the client
title: Option<String>This is an optional title which can be used to create a valuable output for consumers.
message: Option<String>A message that describes the error in a human readable form.
In an HttpApiProblem this becomes the detail in most cases.
type_url: Option<String>A URL that points to a detailed description of the error.
instance: Option<String>A URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced.
fields: HashMap<String, Value>Additional JSON encodable information. It is up to the server how and if it adds the given information.
extensions: ExtensionsTyped extensions for carrying processable data server side
Can be used e.g. for middlewares
Extensions will not be part of an HttpApiProblem
source: Option<Box<dyn Error + Send + Sync + 'static>>Implementations§
source§impl ApiErrorBuilder
impl ApiErrorBuilder
sourcepub fn status<T: Into<StatusCode>>(self, status: T) -> Self
pub fn status<T: Into<StatusCode>>(self, status: T) -> Self
Set the StatusCode
sourcepub fn try_status<T: TryInto<StatusCode>>(
self,
status: T
) -> Result<Self, InvalidStatusCode>
pub fn try_status<T: TryInto<StatusCode>>( self, status: T ) -> Result<Self, InvalidStatusCode>
Try to set the StatusCode
Fails if the status argument can not be converted to a StatusCode
sourcepub fn title<T: Display>(self, title: T) -> Self
pub fn title<T: Display>(self, title: T) -> Self
This is an optional title which can be used to create a valuable output for consumers.
sourcepub fn message<M: Display>(self, message: M) -> Self
pub fn message<M: Display>(self, message: M) -> Self
A message that describes the error in a human readable form.
In an HttpApiProblem this becomes the detail in most cases.
sourcepub fn type_url<U: Display>(self, type_url: U) -> Self
pub fn type_url<U: Display>(self, type_url: U) -> Self
A URL that points to a detailed description of the error.
sourcepub fn instance<T: Display>(self, instance: T) -> Self
pub fn instance<T: Display>(self, instance: T) -> Self
Sets the instance
A URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced.
sourcepub fn field<T: Into<String>, V: Serialize>(self, name: T, value: V) -> Self
pub fn field<T: Into<String>, V: Serialize>(self, name: T, value: V) -> Self
Adds a serializable field.
If the serialization fails nothing will be added. An already present field with the same name will be replaced.
sourcepub fn with_fields<F>(self, f: F) -> Self
pub fn with_fields<F>(self, f: F) -> Self
Modify the fields values from within a closure
sourcepub fn extension<T: Send + Sync + Clone + 'static>(self, val: T) -> Self
pub fn extension<T: Send + Sync + Clone + 'static>(self, val: T) -> Self
Adds an extension value.
Existing values will be overwritten
Extensions will not be part of an HttpApiProblem
sourcepub fn with_extensions<F>(self, f: F) -> Self
pub fn with_extensions<F>(self, f: F) -> Self
Modify the extension values from within a closure
Extensions will not be part of an HttpApiProblem
pub fn source<E: Error + Send + Sync + 'static>(self, source: E) -> Self
pub fn source_in_a_box<E: Into<Box<dyn Error + Send + Sync + 'static>>>( self, source: E ) -> Self
Trait Implementations§
source§impl From<ApiErrorBuilder> for ApiError
impl From<ApiErrorBuilder> for ApiError
source§fn from(builder: ApiErrorBuilder) -> Self
fn from(builder: ApiErrorBuilder) -> Self
Auto Trait Implementations§
impl !RefUnwindSafe for ApiErrorBuilder
impl Send for ApiErrorBuilder
impl Sync for ApiErrorBuilder
impl Unpin for ApiErrorBuilder
impl !UnwindSafe for ApiErrorBuilder
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
§impl<T> IntoCollection<T> for T
impl<T> IntoCollection<T> for T
§fn into_collection<A>(self) -> SmallVec<A>where
A: Array<Item = T>,
fn into_collection<A>(self) -> SmallVec<A>where
A: Array<Item = T>,
self into a collection.fn mapped<U, F, A>(self, f: F) -> SmallVec<A>where
F: FnMut(T) -> U,
A: Array<Item = U>,
§impl<T> Paint for Twhere
T: ?Sized,
impl<T> Paint for Twhere
T: ?Sized,
§fn fg(&self, value: Color) -> Painted<&T>
fn fg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the foreground set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like red() and
green(), which have the same functionality but are
pithier.
Example
Set foreground color to white using fg():
use yansi::{Paint, Color};
painted.fg(Color::White);Set foreground color to white using white().
use yansi::Paint;
painted.white();§fn bright_black(&self) -> Painted<&T>
fn bright_black(&self) -> Painted<&T>
§fn bright_red(&self) -> Painted<&T>
fn bright_red(&self) -> Painted<&T>
§fn bright_green(&self) -> Painted<&T>
fn bright_green(&self) -> Painted<&T>
§fn bright_yellow(&self) -> Painted<&T>
fn bright_yellow(&self) -> Painted<&T>
§fn bright_blue(&self) -> Painted<&T>
fn bright_blue(&self) -> Painted<&T>
§fn bright_magenta(&self) -> Painted<&T>
fn bright_magenta(&self) -> Painted<&T>
§fn bright_cyan(&self) -> Painted<&T>
fn bright_cyan(&self) -> Painted<&T>
§fn bright_white(&self) -> Painted<&T>
fn bright_white(&self) -> Painted<&T>
§fn bg(&self, value: Color) -> Painted<&T>
fn bg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the background set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like on_red() and
on_green(), which have the same functionality but
are pithier.
Example
Set background color to red using fg():
use yansi::{Paint, Color};
painted.bg(Color::Red);Set background color to red using on_red().
use yansi::Paint;
painted.on_red();§fn on_primary(&self) -> Painted<&T>
fn on_primary(&self) -> Painted<&T>
§fn on_magenta(&self) -> Painted<&T>
fn on_magenta(&self) -> Painted<&T>
§fn on_bright_black(&self) -> Painted<&T>
fn on_bright_black(&self) -> Painted<&T>
§fn on_bright_red(&self) -> Painted<&T>
fn on_bright_red(&self) -> Painted<&T>
§fn on_bright_green(&self) -> Painted<&T>
fn on_bright_green(&self) -> Painted<&T>
§fn on_bright_yellow(&self) -> Painted<&T>
fn on_bright_yellow(&self) -> Painted<&T>
§fn on_bright_blue(&self) -> Painted<&T>
fn on_bright_blue(&self) -> Painted<&T>
§fn on_bright_magenta(&self) -> Painted<&T>
fn on_bright_magenta(&self) -> Painted<&T>
§fn on_bright_cyan(&self) -> Painted<&T>
fn on_bright_cyan(&self) -> Painted<&T>
§fn on_bright_white(&self) -> Painted<&T>
fn on_bright_white(&self) -> Painted<&T>
§fn attr(&self, value: Attribute) -> Painted<&T>
fn attr(&self, value: Attribute) -> Painted<&T>
Enables the styling [Attribute] value.
This method should be used rarely. Instead, prefer to use
attribute-specific builder methods like bold() and
underline(), which have the same functionality
but are pithier.
Example
Make text bold using attr():
use yansi::{Paint, Attribute};
painted.attr(Attribute::Bold);Make text bold using using bold().
use yansi::Paint;
painted.bold();§fn rapid_blink(&self) -> Painted<&T>
fn rapid_blink(&self) -> Painted<&T>
§fn quirk(&self, value: Quirk) -> Painted<&T>
fn quirk(&self, value: Quirk) -> Painted<&T>
Enables the yansi [Quirk] value.
This method should be used rarely. Instead, prefer to use quirk-specific
builder methods like mask() and
wrap(), which have the same functionality but are
pithier.
Example
Enable wrapping using .quirk():
use yansi::{Paint, Quirk};
painted.quirk(Quirk::Wrap);Enable wrapping using wrap().
use yansi::Paint;
painted.wrap();§fn whenever(&self, value: Condition) -> Painted<&T>
fn whenever(&self, value: Condition) -> Painted<&T>
Conditionally enable styling based on whether the [Condition] value
applies. Replaces any previous condition.
See the crate level docs for more details.
Example
Enable styling painted only when both stdout and stderr are TTYs:
use yansi::{Paint, Condition};
painted.red().on_yellow().whenever(Condition::STDOUTERR_ARE_TTY);