weather_util_rust 0.15.1

CLI tool to pull weather data from openweathermap.org, intended to replace the debian package weather-util
Documentation
use envy::Error as EnvyError;
use serde_json::Error as SerdeJsonError;
use std::{fmt::Error as FmtError, io::Error as IoError, num::ParseFloatError};
use thiserror::Error;
use url::ParseError as UrlParseError;

#[cfg(feature = "cli")]
use clap::Error as ClapError;

#[cfg(feature = "cli")]
use reqwest::Error as ReqwestError;

use crate::StringType;

#[derive(Error, Debug)]
pub enum Error {
    #[error("Format Error {0}")]
    FmtError(#[from] FmtError),
    #[error("Float Parse Error {0}")]
    ParseFloatError(#[from] ParseFloatError),
    #[error("Environment Parsing Error {0}")]
    EnvyError(#[from] EnvyError),
    #[error("URL Parse Error {0}")]
    UrlParseError(#[from] UrlParseError),
    #[error("JSON Serde Error {0}")]
    SerdeJsonError(#[from] SerdeJsonError),
    #[error("IO Error {0}")]
    IoError(#[from] IoError),
    #[error("Invalid Value Error {0}")]
    InvalidValue(StringType),
    #[error("Invalid Input Error {0}")]
    InvalidInputError(StringType),

    #[cfg(feature = "cli")]
    #[error("Clap CLI Parser Error {0}")]
    ClapError(#[from] ClapError),

    #[cfg(feature = "cli")]
    #[error("Reqwest Error {0}")]
    ReqwestError(#[from] ReqwestError),
}