changeset_project/
error.rs1use std::path::PathBuf;
2
3use thiserror::Error;
4
5#[derive(Debug, Error)]
6pub enum ProjectError {
7 #[error("IO error")]
8 Io(#[from] std::io::Error),
9
10 #[error("TOML parse error")]
11 TomlParse(#[from] toml::de::Error),
12
13 #[error("no Cargo.toml found traversing from '{start_dir}'")]
14 NotFound { start_dir: PathBuf },
15
16 #[error("failed to read manifest at '{path}'")]
17 ManifestRead {
18 path: PathBuf,
19 #[source]
20 source: std::io::Error,
21 },
22
23 #[error("failed to parse manifest at '{path}'")]
24 ManifestParse {
25 path: PathBuf,
26 #[source]
27 source: toml::de::Error,
28 },
29
30 #[error("manifest at '{path}' missing required field '{field}'")]
31 MissingField { path: PathBuf, field: &'static str },
32
33 #[error("invalid version '{version}' in package at '{path}'")]
34 InvalidVersion {
35 path: PathBuf,
36 version: String,
37 #[source]
38 source: semver::Error,
39 },
40
41 #[error("invalid glob pattern '{pattern}'")]
42 GlobPattern {
43 pattern: String,
44 #[source]
45 source: globset::Error,
46 },
47
48 #[error("failed to create directory '{path}'")]
49 DirectoryCreate {
50 path: PathBuf,
51 #[source]
52 source: std::io::Error,
53 },
54}