use std::path::PathBuf;
#[derive(Debug, thiserror::Error)]
pub enum ScanError {
#[error("Failed to parse {path}: {reason}")]
ParseError { path: PathBuf, reason: String },
#[error("Unsupported language: {0}")]
UnsupportedLanguage(String),
#[error("Discovery error in {path}: {reason}")]
DiscoveryError { path: PathBuf, reason: String },
#[error("Manifest parse error in {path}: {reason}")]
ManifestError { path: PathBuf, reason: String },
#[error("Documentation parse error in {path}: {reason}")]
DocumentationError { path: PathBuf, reason: String },
#[error("Storage error: {0}")]
StorageError(#[from] seshat_storage::StorageError),
#[error("Git error: {0}")]
GitError(String),
#[error("IO error: {0}")]
Io(#[from] std::io::Error),
}