use geometry_io_wkt::WktWriteError;
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum EwktWriteError {
SridOutOfRange {
srid: u32,
},
Wkt(WktWriteError),
Sink(core::fmt::Error),
}
impl From<WktWriteError> for EwktWriteError {
fn from(error: WktWriteError) -> Self {
Self::Wkt(error)
}
}
impl From<core::fmt::Error> for EwktWriteError {
fn from(error: core::fmt::Error) -> Self {
Self::Sink(error)
}
}
impl core::fmt::Display for EwktWriteError {
fn fmt(&self, out: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
match self {
Self::SridOutOfRange { srid } => write!(
out,
"SRID {srid} is outside PostGIS's 0..=999999 text range"
),
Self::Wkt(error) => write!(out, "invalid WKT output: {error}"),
Self::Sink(error) => write!(out, "EWKT prefix output failed: {error}"),
}
}
}
#[cfg(feature = "std")]
impl std::error::Error for EwktWriteError {}