[−][src]Struct lark_error::WithError
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: T
errors: 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]
cx: Cx,
label: String,
span: Span<FileName>
) -> WithError<T> where
T: ErrorSentinel<Cx>,
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]
self,
op: impl FnOnce(T) -> U
) -> WithError<U>
Trait Implementations
impl<T, Cx> ErrorSentinel<Cx> for WithError<T> where
T: ErrorSentinel<Cx>,
[src]
T: ErrorSentinel<Cx>,
fn error_sentinel(cx: Cx, report: ErrorReported) -> WithError<T> where
T: ErrorSentinel<Cx>,
[src]
T: ErrorSentinel<Cx>,
impl<T: PartialOrd> PartialOrd<WithError<T>> for WithError<T>
[src]
fn partial_cmp(&self, other: &WithError<T>) -> Option<Ordering>
[src]
fn lt(&self, other: &WithError<T>) -> bool
[src]
fn le(&self, other: &WithError<T>) -> bool
[src]
fn gt(&self, other: &WithError<T>) -> bool
[src]
fn ge(&self, other: &WithError<T>) -> bool
[src]
impl<T: Eq> Eq for WithError<T>
[src]
impl<T: Ord> Ord for WithError<T>
[src]
fn cmp(&self, other: &WithError<T>) -> Ordering
[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(&self) -> 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<__HT: Hasher>(&self, state: &mut __HT)
[src]
fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher,
1.3.0[src]
H: Hasher,
Feeds a slice of this type into the given [Hasher
]. Read more
impl<T: DebugWith> DebugWith for WithError<T>
[src]
fn fmt_with<Cx: ?Sized>(&self, cx: &Cx, fmt: &mut Formatter) -> Result
[src]
fn debug_with<Cx>(&'me self, cx: &'me Cx) -> DebugCxPair<'me, &'me Self, Cx> where
Cx: ?Sized,
[src]
Cx: ?Sized,
fn into_debug_with<Cx>(self, cx: &'me Cx) -> DebugCxPair<'me, Self, Cx> where
Cx: ?Sized,
[src]
Cx: ?Sized,
Auto Trait Implementations
Blanket Implementations
impl<T, U> Into for T where
U: From<T>,
[src]
U: From<T>,
impl<T> From for T
[src]
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
impl<T, U> TryFrom for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = !
try_from
)The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T> Borrow for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T, U> TryInto for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
try_from
)The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<Q, K> Equivalent for Q where
K: Borrow<Q> + ?Sized,
Q: Eq + ?Sized,
[src]
K: Borrow<Q> + ?Sized,
Q: Eq + ?Sized,
fn equivalent(&self, key: &K) -> bool
[src]
impl<Cx, T> FmtWithSpecialized for T where
Cx: ?Sized,
T: Debug + ?Sized,
[src]
Cx: ?Sized,
T: Debug + ?Sized,