pub struct BugAbort;Expand description
Marker type which enables implementation of create_bug and emit_bug functions for
bug diagnostics.
Trait Implementations§
Source§impl EmissionGuarantee for BugAbort
impl EmissionGuarantee for BugAbort
Source§type EmitResult = <fn() -> ! as GetReturnType>::ReturnType
type EmitResult = <fn() -> ! as GetReturnType>::ReturnType
This exists so that bugs and fatal errors can both result in
! (an abort) when emitted,
but have different aborting behaviour.Source§fn emit_producing_guarantee(
db: &mut DiagBuilder<'_, BugAbort>,
) -> <BugAbort as EmissionGuarantee>::EmitResult
fn emit_producing_guarantee( db: &mut DiagBuilder<'_, BugAbort>, ) -> <BugAbort as EmissionGuarantee>::EmitResult
Implementation of
DiagBuilder::emit, fully controlled by each impl of
EmissionGuarantee, to make it impossible to create a value of Self::EmitResult without
actually performing the emission.Source§impl Ord for BugAbort
impl Ord for BugAbort
Source§impl PartialOrd for BugAbort
impl PartialOrd for BugAbort
impl Copy for BugAbort
impl Eq for BugAbort
impl StructuralPartialEq for BugAbort
Auto Trait Implementations§
impl Freeze for BugAbort
impl RefUnwindSafe for BugAbort
impl Send for BugAbort
impl Sync for BugAbort
impl Unpin for BugAbort
impl UnwindSafe for BugAbort
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T, R> CollectAndApply<T, R> for T
impl<T, R> CollectAndApply<T, R> for T
Source§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
fn equivalent(&self, key: &K) -> bool
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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> 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> ⓘ
Converts
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> ⓘ
Converts
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 more