1use std::{io, path::PathBuf};
2
3#[derive(Debug, thiserror::Error)]
4pub enum Error {
5 #[error("I/O error: {0}")]
6 Io(#[from] io::Error),
7 #[error("Failed to parse manifest: {0}")]
8 TomlParse(#[from] toml::de::Error),
9 #[error("Failed to serialize manifest: {0}")]
10 TomlSerialize(#[from] toml::ser::Error),
11 #[error("{0} not found")]
12 NotFound(PathBuf),
13 #[error("{0} already exists")]
14 AlreadyExists(PathBuf),
15 #[error("{0} is already tracked")]
16 AlreadyTracked(PathBuf),
17 #[error("Cannot determine home directory")]
18 NoHomeDir,
19 #[error("Expected {0} to be a symlink")]
20 NotASymlink(PathBuf),
21}
22
23pub type Result<T> = std::result::Result<T, Error>;