pub struct FatalAbort;Expand description
Marker type which enables implementation of fatal diagnostics.
Trait Implementations§
Source§impl EmissionGuarantee for FatalAbort
impl EmissionGuarantee for FatalAbort
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<'_, FatalAbort>,
) -> <FatalAbort as EmissionGuarantee>::EmitResult
fn emit_producing_guarantee( db: &mut DiagBuilder<'_, FatalAbort>, ) -> <FatalAbort 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.Auto Trait Implementations§
impl Freeze for FatalAbort
impl RefUnwindSafe for FatalAbort
impl Send for FatalAbort
impl Sync for FatalAbort
impl Unpin for FatalAbort
impl UnwindSafe for FatalAbort
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, R> CollectAndApply<T, R> for T
impl<T, R> CollectAndApply<T, R> for T
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