use std::path::PathBuf;
use thiserror::Error;
#[derive(Debug, Error)]
#[non_exhaustive]
pub enum FrenError {
#[error("I/O error at {path}: {source}")]
Io {
path: PathBuf,
#[source]
source: std::io::Error,
},
#[error("target already exists: {0}")]
TargetExists(PathBuf),
#[error("within-batch collision: {a} and {b} both want to rename to {target}")]
WithinBatchCollision {
a: PathBuf,
b: PathBuf,
target: PathBuf,
},
#[error("invalid input: {0}")]
InvalidInput(String),
#[error("not yet implemented: {0}")]
NotYetImplemented(String),
}