use furmint_resources::ResourceError;
use thiserror::Error;
pub type RuntimeResult<T> = Result<T, RuntimeError>;
#[derive(Error, Debug)]
pub enum RuntimeError {
#[error(transparent)]
Io(#[from] std::io::Error),
#[error(transparent)]
RonParsing(#[from] ron::de::SpannedError),
#[error(transparent)]
TomlParsing(#[from] toml::de::Error),
#[error(transparent)]
Specs(#[from] specs::error::Error),
#[error("failed to set up plugin `{plugin}`")]
PluginSetup {
plugin: String,
#[source]
source: Box<dyn std::error::Error>,
},
#[error("config path cannot be empty")]
EmptyConfigPath,
#[error("`{source}`")]
ConfigIo {
#[source]
source: std::io::Error,
},
#[error(transparent)]
ResourceError(#[from] ResourceError),
}