pub trait EmissionGuarantee: Sized {
type EmitResult = Self;
// Required method
fn emit_producing_guarantee(
db: DiagnosticBuilder<'_, Self>
) -> Self::EmitResult;
}
Expand description
Trait for types that DiagnosticBuilder::emit
can return as a “guarantee”
(or “proof”) token that the emission happened.
Provided Associated Types§
sourcetype EmitResult = Self
type EmitResult = Self
This exists so that bugs and fatal errors can both result in !
(an
abort) when emitted, but have different aborting behaviour.
Required Methods§
sourcefn emit_producing_guarantee(db: DiagnosticBuilder<'_, Self>) -> Self::EmitResult
fn emit_producing_guarantee(db: DiagnosticBuilder<'_, Self>) -> Self::EmitResult
Implementation of DiagnosticBuilder::emit
, fully controlled by each
impl
of EmissionGuarantee
, to make it impossible to create a value
of Self::EmitResult
without actually performing the emission.
Object Safety§
This trait is not object safe.