use std::path::PathBuf;
use thiserror::Error;
#[derive(Debug, Error)]
pub enum PromptError {
#[error("io error at {path:?}: {source}")]
Io {
path: PathBuf,
#[source]
source: std::io::Error,
},
#[error("invalid prompt at {path:?}: {reason}")]
Invalid {
path: PathBuf,
reason: String,
},
#[error("malformed frontmatter at {path:?}: {source}")]
Frontmatter {
path: PathBuf,
#[source]
source: serde_yaml::Error,
},
}
impl PromptError {
pub fn io(path: PathBuf, source: std::io::Error) -> Self {
Self::Io { path, source }
}
pub fn invalid(path: PathBuf, reason: impl Into<String>) -> Self {
Self::Invalid {
path,
reason: reason.into(),
}
}
pub fn frontmatter(path: PathBuf, source: serde_yaml::Error) -> Self {
Self::Frontmatter { path, source }
}
}