use super::{Diagnostics, Record};
use log::{warn, Level};
pub fn log_diagnostics(handle: &(impl Diagnostics + ?Sized)) {
if log::max_level() < Level::Warn {
return;
}
let mut rec = Record::with_capacity(512);
let mut rec_number = 1;
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;
}
}