use super::{diagnostics::Record, Diagnostics};
use log::{warn, Level};
pub fn log_diagnostics(handle: &(impl Diagnostics + ?Sized)) {
if log::max_level() < Level::Warn {
return;
}
let mut rec_number = 1;
let mut rec = Record::default();
while rec.fill_from(handle, rec_number) {
warn!("{}", rec);
if rec_number == i16::MAX {
warn!("Too many diagnostic records were generated. Not all could be logged.");
break;
}
rec_number += 1;
}
}