use std::path::PathBuf;
use thiserror::Error;
#[derive(Debug, Error)]
pub enum ParseError {
#[error("Failed to read file '{path}': {source}")]
FileRead {
path: PathBuf,
#[source]
source: std::io::Error,
},
#[error("Failed to parse Rust source in '{path}': {message}")]
SyntaxError {
path: PathBuf,
message: String,
},
#[error("Directory does not exist: {0}")]
DirectoryNotFound(PathBuf),
#[error("Failed to walk directory '{path}': {source}")]
WalkError {
path: PathBuf,
#[source]
source: walkdir::Error,
},
#[error("Invalid path encoding: {0}")]
InvalidPath(PathBuf),
}
pub type ParseResult<T> = Result<T, ParseError>;