use thiserror::*;
#[derive(Error, Debug)]
pub enum MagnetError {
#[error("Could not load file: {0}")]
LoadError(std::io::Error),
#[error("Could not parse float: {0}")]
ParseFloatError(std::num::ParseFloatError),
#[error("TOML parse error: {0}")]
TomlParseError(#[from] toml::de::Error),
#[error("Could not parse file: {0}")]
ParseError(#[from] serde_json::Error),
#[error("There must be at least 3 vertices")]
PolygonSideError(),
#[error(transparent)]
Other(#[from] anyhow::Error),
}
impl From<std::io::Error> for MagnetError {
fn from(e: std::io::Error) -> Self {
MagnetError::LoadError(e)
}
}
impl From<std::num::ParseFloatError> for MagnetError {
fn from(e: std::num::ParseFloatError) -> Self {
MagnetError::ParseFloatError(e)
}
}