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", so this trait is not object safe.