From f08bbe736643beb3953199ae51610d4282d93476 Mon Sep 17 00:00:00 2001 From: Harald Eilertsen Date: Sun, 24 Feb 2019 10:55:43 +0100 Subject: Handle the case where there's no availability data for a given station. --- src/main.rs | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/src/main.rs b/src/main.rs index 5e18bac..ffbeae2 100644 --- a/src/main.rs +++ b/src/main.rs @@ -29,13 +29,20 @@ fn main() -> Result<(), Box> { let station_availability = api.station_availability()?; for station in api.stations()? { - let a = station_availability.iter().find(|s| s.id == station.id).unwrap(); - println!("{:>4} {:<32}: {:>2} bikes, {:>2} locks of {:>2} total", - station.id, - station.title, - a.availability.bikes, - a.availability.locks, - station.number_of_locks); + if let Some(a) = station_availability.iter().find(|s| s.id == station.id) { + println!("{:>4} {:<32}: {:>2} bikes, {:>2} locks of {:>2} total", + station.id, + station.title, + a.availability.bikes, + a.availability.locks, + station.number_of_locks); + } + else { + println!("{:>4} {:<32}: No availability data, {:>2} total capacity", + station.id, + station.title, + station.number_of_locks); + } } Ok(()) -- cgit v1.2.3