#![cfg_attr(feature = "fail-on-warnings", deny(warnings))]
#![warn(clippy::all, clippy::pedantic, clippy::nursery, clippy::cargo)]
#![allow(clippy::multiple_crate_versions)]
use std::path::PathBuf;
use thiserror::Error;
#[derive(Debug, Error)]
pub enum OperationError {
#[error("IO error at {}: {source}", path.display())]
IoError {
path: PathBuf,
#[source]
source: std::io::Error,
},
#[error("Failed to create symlink from {} to {}: {error}", source.display(), target.display())]
SymlinkError {
source: PathBuf,
target: PathBuf,
#[source]
error: std::io::Error,
},
#[error("Failed to copy from {} to {}: {error}", source.display(), target.display())]
CopyError {
source: PathBuf,
target: PathBuf,
#[source]
error: std::io::Error,
},
#[error("Glob pattern error: {0}")]
GlobError(#[from] glob::PatternError),
#[error("Git error: {0}")]
GitError(#[from] worktree_setup_git::GitError),
#[error("Copy error: {0}")]
CopyModuleError(String),
}