l3bin 1.0.0

Integerized Sinusoidal Binning Scheme for Level 3 Data
Documentation
use std::fmt;

#[derive(Debug)]
pub enum IsinError {
    InvalidBinRange { max_bin: usize },
    InvalidLatitude { min: f64, max: f64 },
    InvalidLongitude { min: f64, max: f64 },
}

impl std::error::Error for IsinError {}

impl fmt::Display for IsinError {
    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
        match self {
            IsinError::InvalidBinRange { max_bin } => {
                write!(f, "Bin value must be between 1 and {}.", max_bin)
            }
            IsinError::InvalidLatitude { min, max } => {
                write!(f, "Latitude must be between {} and {}.", min, max)
            }
            IsinError::InvalidLongitude { min, max } => {
                write!(f, "Longitude must be between {} and {}.", min, max)
            }
        }
    }
}