use std::{io, path::PathBuf};
#[non_exhaustive]
#[derive(Debug, thiserror::Error)]
pub enum Error {
#[error("failed to parse frontmatter: {path}")]
ParseFrontmatter {
#[source]
source: markdown_frontmatter::Error,
path: PathBuf,
},
#[error("failed to read file: {path}")]
ReadFile {
#[source]
source: io::Error,
path: PathBuf,
},
}
impl Error {
pub fn parse_frontmatter(
source: markdown_frontmatter::Error,
path: impl Into<PathBuf>,
) -> Self {
Self::ParseFrontmatter {
source,
path: path.into(),
}
}
pub fn read_file(source: io::Error, path: impl Into<PathBuf>) -> Self {
Self::ReadFile {
source,
path: path.into(),
}
}
}
pub type Result<T> = std::result::Result<T, Error>;