use dotenv;
use oslobike;
use std::error::Error;
use std::result::Result;
fn main() -> Result<(), Box<dyn Error>> {
let api_key = dotenv::var("OSLOBIKE_APIKEY")
.map_err(|_| "No API key defined.")?;
let api = oslobike::Api::new(api_key)?;
let station_availability = api.station_availability()?;
for station in api.stations()? {
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(())
}