pub trait EmissionGuarantee: Sized {
type EmitResult = Self;
// Required method
fn emit_producing_guarantee(diag: Diag<'_, Self>) -> Self::EmitResult;
}Expand description
Trait for types that Diag::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(diag: Diag<'_, Self>) -> Self::EmitResult
fn emit_producing_guarantee(diag: Diag<'_, Self>) -> Self::EmitResult
Implementation of Diag::emit, fully controlled by each impl of
EmissionGuarantee, to make it impossible to create a value of
Self::EmitResult without actually performing the emission.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".