Struct Report

Source
pub struct Report<E: AsRefError>(/* private fields */);
Expand description

Report prints an error and all its sources.

Source messages will be cleaned using CleanedErrors to remove duplication from errors that include their source’s message in their own message.

The debug implementation prints each error on a separate line, while the display implementation prints all errors on one line separated by a colon. Using alternate formatting ({:#}) is identical to the debug implementation.

The debug implementation is intended for cases where errors are debug printed, for example returning an error from main or using expect on Result:

use error_report::Report;

fn func1() -> Result<(), std::io::Error> {
    Err(std::io::Error::other("oh no!"))
}

fn main() -> Result<(), Report<impl std::error::Error>> {
    func1()?;
    Ok(())
}
let i: i8 = 256.try_into().map_err(Report::from).expect("conversion error");

Implementations§

Source§

impl<E: AsRefError> Report<E>

Source

pub fn new(err: E) -> Self

Construct a new Report from an error.

Source§

impl<E: AsRef<dyn Error>> Report<Ref<E>>

Source

pub fn from_ref(value: E) -> Self

Construct a new Report from a type that implements AsRef<dyn Error>.

Trait Implementations§

Source§

impl<E: AsRefError> Debug for Report<E>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<E: AsRefError> Display for Report<E>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<E: AsRefError> From<E> for Report<E>

Source§

fn from(value: E) -> Self

Converts to this type from the input type.
Source§

impl<E: AsRef<dyn Error>> From<E> for Report<Ref<E>>

Source§

fn from(value: E) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

§

impl<E> Freeze for Report<E>
where E: Freeze,

§

impl<E> RefUnwindSafe for Report<E>
where E: RefUnwindSafe,

§

impl<E> Send for Report<E>
where E: Send,

§

impl<E> Sync for Report<E>
where E: Sync,

§

impl<E> Unpin for Report<E>
where E: Unpin,

§

impl<E> UnwindSafe for Report<E>
where E: UnwindSafe,

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<!> for T

Source§

fn from(t: !) -> T

Converts to this type from the input type.
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> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
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.