use {
facet::Facet,
facet_reflect::Peek,
};
use crate::cmp::EqReport;
#[cold]
#[track_caller]
pub fn do_panic<'facet>(
report: Peek<'_, 'facet>,
lhs: Peek<'_, 'facet>,
rhs: Peek<'_, 'facet>,
) -> ! {
let fmt = crate::format::DiffPrinter::default().peek_as_format(report, lhs, rhs);
::core::panic!("{fmt}");
}
#[track_caller]
pub fn assert_eq<'facet, T: ?Sized + Facet<'facet>, Cmp: EqReport<T, Report: Facet<'facet>>>(
lhs: &T,
rhs: &T,
cmp: &Cmp,
) {
if let Err(report) = crate::cmp::EqReport::eq_report(cmp, lhs, rhs) {
do_panic(Peek::new(&report), Peek::new(lhs), Peek::new(rhs))
}
}