traj-dist-rs 1.0.0-rc.5

High-performance trajectory distance & similarity measures in Rust with Python bindings
Documentation
use pyo3::{PyErr, exceptions::PyValueError};

use crate::err::TrajDistError;

impl From<TrajDistError> for PyErr {
    fn from(err: TrajDistError) -> PyErr {
        match err {
            TrajDistError::InvalidCoordinate(n) => PyValueError::new_err(format!(
                "Coordinates must contain two values (longitude, latitude), but received {}",
                n
            )),
            TrajDistError::InvalidParams(s) => {
                PyValueError::new_err(format!("InvalidParams: {}", s))
            }
            TrajDistError::DataConvertionError(s) => {
                PyValueError::new_err(format!("DataConvertionError: {}", s))
            }
            TrajDistError::InvalidSizeOfListArray => {
                PyValueError::new_err("ListArray<i64> must have length 1")
            }
            TrajDistError::InvalidSeqType => PyValueError::new_err("Invalid SeqType"),
            TrajDistError::InvalidConverter => PyValueError::new_err("Invalid converter"),
            TrajDistError::OutofIndex(e) => PyValueError::new_err(format!("out of index: {}", e)),
        }
    }
}