borderpoi-rs/src/report.rs
Jonas Rabenstein 999aa5d329 split and snap
2026-08-12 01:46:14 +02:00

46 lines
1.1 KiB
Rust

use std::collections::HashSet;
use crate::crossings::Crossing;
pub fn print_report(crossings: &[Crossing]) {
eprintln!();
eprintln!("County visits");
eprintln!("=============");
if crossings.is_empty() {
eprintln!("No county crossings found.");
return;
}
let mut visits = Vec::new();
visits.push(crossings[0].from.clone());
for crossing in crossings {
visits.push(crossing.to.clone());
}
for (index, county) in visits.iter().enumerate() {
eprintln!("{:3} {} [{}]", index + 1, county.name, county.id,);
}
let unique: HashSet<String> = visits.iter().map(|county| county.id.clone()).collect();
eprintln!();
eprintln!("Visits: {}", visits.len());
eprintln!("Unique counties: {}", unique.len());
eprintln!();
eprintln!("Border crossings");
eprintln!("=================");
for (index, crossing) in crossings.iter().enumerate() {
eprintln!(
"{:3} {} -> {}",
index + 1,
crossing.from.name,
crossing.to.name,
);
}
}