use std::path::PathBuf;
use thiserror::Error;
#[derive(Error, Debug)]
pub enum RustlocError {
#[error("failed to read file '{path}': {source}")]
FileRead {
path: PathBuf,
source: std::io::Error,
},
#[error("failed to parse cargo metadata: {0}")]
CargoMetadata(String),
#[error("invalid glob pattern '{pattern}': {message}")]
InvalidGlob { pattern: String, message: String },
#[error("path does not exist: {0}")]
PathNotFound(PathBuf),
#[error("no Cargo.toml found at or above: {0}")]
CargoTomlNotFound(PathBuf),
#[error("not a Rust file: {0}")]
NotRustFile(PathBuf),
#[error("IO error: {0}")]
Io(#[from] std::io::Error),
#[error("git error: {0}")]
GitError(String),
}