use thiserror::Error;
pub type Result<T> = std::result::Result<T, Error>;
#[derive(Debug, Error)]
pub enum Error {
#[error("no exporter for `{name}` (this build has: {available})")]
UnknownFormat {
name: String,
available: String,
},
#[error("{format} cannot write {what}")]
Unsuitable {
format: &'static str,
what: String,
},
#[error("{0}")]
Placement(String),
#[error(transparent)]
Geometry(#[from] energyml_geometry::Error),
#[error(transparent)]
Domain(#[from] energyml_domain::Error),
#[error(transparent)]
Io(#[from] std::io::Error),
}
impl Error {
pub fn unsuitable(format: &'static str, what: impl Into<String>) -> Self {
Error::Unsuitable {
format,
what: what.into(),
}
}
}