popgetter_core/
error.rs

1//! Error types.
2
3#[derive(thiserror::Error, Debug)]
4pub enum PopgetterError {
5    #[error("Connection failure.")]
6    FailedConnection,
7    #[error("Metric not found.")]
8    MetricNotFound(String),
9    #[error("Invalid search syntax: {0}")]
10    InvalidSearchQuery(String),
11    #[error("Non-existent geometry for metric requested: {0}")]
12    NonExistentGeometry(String),
13    #[error("Wrapped polars error: {0}")]
14    PolarsError(#[from] polars::error::PolarsError),
15    #[error("Unknown error.")]
16    Unknown,
17}
18
19#[cfg(test)]
20mod tests {
21    use polars::error::{ErrString, PolarsError};
22
23    use super::*;
24
25    #[test]
26    fn test_from_polars_error() {
27        let polars_error = PolarsError::ShapeMismatch(ErrString::from("An example polars error"));
28        let popgetter_error: PopgetterError = polars_error.into();
29        println!("{}", popgetter_error);
30    }
31}