1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
#![allow(unused_imports)] #![allow(clippy::must_use_candidate)] #![allow(clippy::too_many_lines)] #![allow(clippy::module_name_repetitions)] #![allow(clippy::cast_precision_loss)] #![allow(clippy::cast_sign_loss)] #![allow(clippy::cast_possible_truncation)] #![allow(clippy::cast_possible_wrap)] #![allow(clippy::similar_names)] #![allow(clippy::shadow_unrelated)] //! Utility to retreive and format weather data from openweathermap.org //! //! ```bash //! Please specify one of zipcode(country_code), city_name, or lat and lon. //! //! USAGE: //! weather-util-rust [OPTIONS] //! //! FLAGS: //! -h, --help Prints help information //! -V, --version Prints version information //! //! OPTIONS: //! -k, --api-key <api-key> Api key (optional but either this or API_KEY environemnt variable must exist) //! --city-name <city-name> City Name (optional) //! -c, --country-code <country-code> Country Code (optional), if not specified `us` will be assumed //! --lat <lat> Latitude (must also specify Longitude) //! --lon <lon> Longitude (must also specify Latitude) //! -z, --zipcode <zipcode> Zipcode (optional) //! /// Configuration data pub mod config; /// Latitude pub mod latitude; /// Longitude pub mod longitude; /// Temperature module: conversions between Kelvin, Ceclius and Fahrenheit pub mod temperature; /// Serialize/Deserialize Unix Timetstamp to/from `DateTime` pub mod timestamp; /// Reqwest Client pub mod weather_api; /// Representation of Weather Data from openweathermap.org pub mod weather_data; /// Representation of Weather Forecast from openweathermap.org pub mod weather_forecast; /// CLI App Options and implementation pub mod weather_opts; use anyhow::{format_err, Error}; use log::error; use retry::{delay::jitter, delay::Exponential, retry};