use std::path::Path;
use introspection_core::MiddlewareLoadReport;
pub fn print_human(report: &MiddlewareLoadReport, path: &Path) {
println!("RobotRT Middleware Load");
println!("source: {}", path.display());
println!("captured_at_unix_nanos: {}", report.captured_at_unix_nanos);
println!(
"discovery: topics={} services={} missions={}",
report.discovery.topics, report.discovery.services, report.discovery.missions
);
println!(
"sessions: connecting={} connected={} reconnecting={} closed={}",
report.sessions.connecting,
report.sessions.connected,
report.sessions.reconnecting,
report.sessions.closed
);
println!(
"totals: topic_count={} topic_pending={} service_count={} pending_requests={} pending_responses={}",
report.totals.topic_count,
report.totals.topic_pending_total,
report.totals.service_count,
report.totals.service_pending_requests_total,
report.totals.service_pending_responses_total,
);
println!();
println!("Topics:");
println!(
"{:<34} {:>8} {:>8} {:>8}",
"NAME", "PENDING", "DEPTH", "UTIL%"
);
for topic in &report.topics {
println!(
"{:<34} {:>8} {:>8} {:>7.1}",
topic.topic,
topic.pending,
topic.max_depth,
topic.utilization_ratio * 100.0
);
}
println!();
println!("Services:");
println!("{:<34} {:>10} {:>10}", "NAME", "REQ", "RESP");
for service in &report.services {
println!(
"{:<34} {:>10} {:>10}",
service.service, service.pending_requests, service.pending_responses
);
}
}