1use furmint_resources::ResourceError;
4use thiserror::Error;
5
6pub type RuntimeResult<T> = Result<T, RuntimeError>;
8
9#[derive(Error, Debug)]
11pub enum RuntimeError {
12 #[error(transparent)]
14 Io(#[from] std::io::Error),
15 #[error(transparent)]
17 RonParsing(#[from] ron::de::SpannedError),
18 #[error(transparent)]
20 TomlParsing(#[from] toml::de::Error),
21 #[error(transparent)]
23 Specs(#[from] specs::error::Error),
24 #[error("failed to set up plugin `{plugin}`")]
26 PluginSetup {
27 plugin: String,
29 #[source]
31 source: Box<dyn std::error::Error>,
32 },
33 #[error("config path cannot be empty")]
35 EmptyConfigPath,
36 #[error("`{source}`")]
38 ConfigIo {
39 #[source]
41 source: std::io::Error,
42 },
43 #[error(transparent)]
45 ResourceError(#[from] ResourceError),
46}