#[derive(thiserror::Error, Debug)]
pub enum GeoError {
#[error("I/O error: {0}")]
Io(#[from] std::io::Error),
#[error("parse error: {0}")]
Parse(String),
#[error("unsupported format: {0}")]
Format(String),
#[error("geometry mismatch: {0}")]
GeometryMismatch(String),
#[error("not found: {0}")]
NotFound(String),
#[error("out of range: {0}")]
OutOfRange(String),
#[error("unsupported: {0}")]
Unsupported(String),
#[error("unit error: {0}")]
Unit(String),
#[error(transparent)]
Tools(#[from] petektools::AlgoError),
}
pub type Result<T> = std::result::Result<T, GeoError>;