pub trait ObligationCauseExt<'tcx> {
// Required methods
fn as_failure_code(&self, terr: TypeError<'tcx>) -> FailureCode;
fn as_failure_code_diag(
&self,
terr: TypeError<'tcx>,
span: Span,
subdiags: Vec<TypeErrorAdditionalDiags>
) -> ObligationCauseFailureCode;
fn as_requirement_str(&self) -> &'static str;
}