Struct ErrorBuilder

Source
pub struct ErrorBuilder { /* private fields */ }
Expand description

A convenience type for building a structured error type

Implementations§

Source§

impl ErrorBuilder

Source

pub fn contains_errors(&self) -> bool

does the builder contain any error messages, used to short circuit various functions if no error has been detected.

Source

pub fn build(&mut self) -> Result<()>

Consume the builder and produce a Result

let e = Error::build()
    .at_named("a", "flat out broken")
    .build();
assert!(e.is_err());
Source

pub fn at_location( &mut self, location: Location, message: impl Into<Cow<'static, str>>, ) -> &mut Self

extend the existing builder with an error at the specified location

Source

pub fn at_named( &mut self, name: impl Into<Cow<'static, str>>, message: impl Into<Cow<'static, str>>, ) -> &mut Self

extend an existing builder with an error at a named location

let e = Error::build()
    .at_named("field_1", "should be empty")
    .build();
Source

pub fn at_index( &mut self, index: usize, message: impl Into<Cow<'static, str>>, ) -> &mut Self

extend an existing builder with an error at an indexed location

let e = Error::build()
    .at_index(1, "value should be even")
    .build();
Source

pub fn try_at_location( &mut self, location: Location, result: Result<()>, ) -> &mut Self

extend the existing builder at the specified location if the result is an error

let e = Error::build()
    .try_at_location(Location::Index(1), Ok(()))
    .build();
assert!(e.is_ok());
Source

pub fn try_at_named( &mut self, name: impl Into<Cow<'static, str>>, result: Result<()>, ) -> &mut Self

extend an existing builder with an error at a named location if the result is an error

let e = Error::build()
    .try_at_named("field", Ok(()))
    .build();
assert!(e.is_ok());
Source

pub fn try_at_index(&mut self, index: usize, result: Result<()>) -> &mut Self

extend an existing builder with an error at an indexed location if the result is an error

let e = Error::build()
    .try_at_index(42, Ok(()))
    .build();
assert!(e.is_ok());

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.