feat!(render): render_report can accept more types #371
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR builds on PR #367! Merging this should be equivalent to merging both!
You can now pass a
&dyn Diagnostic
(as before), or aReport
(or&Report
,&mut Report
, orBox<Report>
), or anything else that implementsDiagnostic
torender_report
.More generally, users can use the
AsDiagnostic
trait wherever they want to write functions that accept either aReport
orDiagnostic
— this improves ergonomics in a world whereimpl Diagnostic for Report
is impossible.BREAKING CHANGE: Because more types can now be passed to
render_report
,Report::as_ref()
can get confused about types, and inference fails. The solution is removing the.as_ref()
altogether sinceReport
is now a directly accepted type.This would also effectively close #366 (for my purposes, at least), since anything accepting
AsDiagnostic
will work forReport
and anything that implementsDiagnostic
!BEFORE MERGING: After getting the green light from you, but before merging this, I'll have to properly fill in the documentation for
AsDiagnostic
! I don't thinkWOOF
andBARK
is particularly helpful, but I didn't want to write docs before knowing if you'd be interested in accepting this PR!