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: StatusCode
The 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: Extensions
Typed 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 Freeze for ApiErrorBuilder
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
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoCollection<T> for T
impl<T> IntoCollection<T> for T
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Paint for Twhere
T: ?Sized,
impl<T> Paint for Twhere
T: ?Sized,
Source§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();
Source§fn bright_black(&self) -> Painted<&T>
fn bright_black(&self) -> Painted<&T>
Source§fn bright_red(&self) -> Painted<&T>
fn bright_red(&self) -> Painted<&T>
Source§fn bright_green(&self) -> Painted<&T>
fn bright_green(&self) -> Painted<&T>
Source§fn bright_yellow(&self) -> Painted<&T>
fn bright_yellow(&self) -> Painted<&T>
Source§fn bright_blue(&self) -> Painted<&T>
fn bright_blue(&self) -> Painted<&T>
Source§fn bright_magenta(&self) -> Painted<&T>
fn bright_magenta(&self) -> Painted<&T>
Source§fn bright_cyan(&self) -> Painted<&T>
fn bright_cyan(&self) -> Painted<&T>
Source§fn bright_white(&self) -> Painted<&T>
fn bright_white(&self) -> Painted<&T>
Source§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();
Source§fn on_primary(&self) -> Painted<&T>
fn on_primary(&self) -> Painted<&T>
Source§fn on_magenta(&self) -> Painted<&T>
fn on_magenta(&self) -> Painted<&T>
Source§fn on_bright_black(&self) -> Painted<&T>
fn on_bright_black(&self) -> Painted<&T>
Source§fn on_bright_red(&self) -> Painted<&T>
fn on_bright_red(&self) -> Painted<&T>
Source§fn on_bright_green(&self) -> Painted<&T>
fn on_bright_green(&self) -> Painted<&T>
Source§fn on_bright_yellow(&self) -> Painted<&T>
fn on_bright_yellow(&self) -> Painted<&T>
Source§fn on_bright_blue(&self) -> Painted<&T>
fn on_bright_blue(&self) -> Painted<&T>
Source§fn on_bright_magenta(&self) -> Painted<&T>
fn on_bright_magenta(&self) -> Painted<&T>
Source§fn on_bright_cyan(&self) -> Painted<&T>
fn on_bright_cyan(&self) -> Painted<&T>
Source§fn on_bright_white(&self) -> Painted<&T>
fn on_bright_white(&self) -> Painted<&T>
Source§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();
Source§fn rapid_blink(&self) -> Painted<&T>
fn rapid_blink(&self) -> Painted<&T>
Source§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();
Source§fn clear(&self) -> Painted<&T>
👎Deprecated since 1.0.1: renamed to resetting()
due to conflicts with Vec::clear()
.
The clear()
method will be removed in a future release.
fn clear(&self) -> Painted<&T>
resetting()
due to conflicts with Vec::clear()
.
The clear()
method will be removed in a future release.Source§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);