[][src]Struct lark_error::WithError

pub struct WithError<T> {
    pub value: T,
    pub errors: Vec<Diagnostic>,
}

Used to indicate an operation that may report an error. Note that there is a subtle -- but important! -- difference between ErrorReported and this type -- returning Err(ErrorReported) indicates that the query invoked some other operation which failed. Returning WithError<X> (where error is Some) indicates that the operation itself is reporting the error. Confusing the two will result in too many or too few error reports being shown to the user.

Fields

value: Terrors: Vec<Diagnostic>

Methods

impl<T> WithError<T>[src]

pub fn ok(value: T) -> WithError<T>[src]

Convenience function: generates a WithError with a result that has no error at all.

pub fn report_error<Cx>(
    cx: Cx,
    label: String,
    span: Span<FileName>
) -> WithError<T> where
    T: ErrorSentinel<Cx>, 
[src]

Convenience function: generates a WithError indicating that this query found an error that was not yet reported. The value is the error-sentinel for this type.

pub fn accumulate_errors_into(self, vec: &mut Vec<Diagnostic>) -> T[src]

Append any errors into vec and return our wrapped value.

pub fn assert_no_errors(self) -> T[src]

pub fn into_value(self) -> T[src]

pub fn into_result(self) -> Result<T, ErrorReported>[src]

pub fn map<U>(
    self,
    op: impl FnOnce(T) -> U
) -> WithError<U>
[src]

Trait Implementations

impl<T, Cx> ErrorSentinel<Cx> for WithError<T> where
    T: ErrorSentinel<Cx>, 
[src]

impl<T: PartialOrd> PartialOrd<WithError<T>> for WithError<T>[src]

impl<T: Eq> Eq for WithError<T>[src]

impl<T: Ord> Ord for WithError<T>[src]

fn max(self, other: Self) -> Self
1.21.0
[src]

Compares and returns the maximum of two values. Read more

fn min(self, other: Self) -> Self
1.21.0
[src]

Compares and returns the minimum of two values. Read more

impl<T: PartialEq> PartialEq<WithError<T>> for WithError<T>[src]

impl<T: Clone> Clone for WithError<T>[src]

fn clone_from(&mut self, source: &Self)
1.0.0
[src]

Performs copy-assignment from source. Read more

impl<T: Debug> Debug for WithError<T>[src]

impl<T: Hash> Hash for WithError<T>[src]

fn hash_slice<H>(data: &[Self], state: &mut H) where
    H: Hasher
1.3.0
[src]

Feeds a slice of this type into the given [Hasher]. Read more

impl<T: DebugWith> DebugWith for WithError<T>[src]

fn debug_with<Cx>(&'me self, cx: &'me Cx) -> DebugCxPair<'me, &'me Self, Cx> where
    Cx: ?Sized
[src]

fn into_debug_with<Cx>(self, cx: &'me Cx) -> DebugCxPair<'me, Self, Cx> where
    Cx: ?Sized
[src]

Auto Trait Implementations

impl<T> Send for WithError<T> where
    T: Send

impl<T> Sync for WithError<T> where
    T: Sync

Blanket Implementations

impl<T, U> Into for T where
    U: From<T>, 
[src]

impl<T> From for T[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

impl<T, U> TryFrom for T where
    U: Into<T>, 
[src]

type Error = !

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

impl<T> Borrow for T where
    T: ?Sized
[src]

impl<T> BorrowMut for T where
    T: ?Sized
[src]

impl<T, U> TryInto for T where
    U: TryFrom<T>, 
[src]

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

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<Q, K> Equivalent for Q where
    K: Borrow<Q> + ?Sized,
    Q: Eq + ?Sized
[src]

impl<Cx, T> FmtWithSpecialized for T where
    Cx: ?Sized,
    T: Debug + ?Sized
[src]

impl<T> Erased for T