runmat_package/source/project_resolver/
error.rs1use crate::{GitPolicyError, GraphError, LockError, RegistryPolicyError, ServerPolicyError};
2use std::path::PathBuf;
3use thiserror::Error;
4
5#[derive(Debug, Error)]
6pub enum ProjectResolveError {
7 #[error("failed to load project manifest {path}: {reason}")]
8 Manifest { path: PathBuf, reason: String },
9 #[error("failed to build source inventory for package `{package}`: {reason}")]
10 SourceInventory { package: String, reason: String },
11 #[error("failed to read source {path}: {reason}")]
12 SourceRead { path: PathBuf, reason: String },
13 #[error("dependency `{dependency}` in package `{package}` points to missing manifest {path}")]
14 MissingManifest {
15 package: String,
16 dependency: String,
17 path: PathBuf,
18 },
19 #[error("dependency cycle detected: {cycle}")]
20 Cycle { cycle: String },
21 #[error("Git acquisition failed for dependency `{dependency}` of `{package}`: {reason}")]
22 GitAcquire {
23 package: String,
24 dependency: String,
25 reason: String,
26 },
27 #[error(
28 "Server snapshot acquisition failed for dependency `{dependency}` of `{package}`: {reason}"
29 )]
30 ServerAcquire {
31 package: String,
32 dependency: String,
33 reason: String,
34 },
35 #[error("registry acquisition failed for package `{package}`: {reason}")]
36 RegistryAcquire { package: String, reason: String },
37 #[error("dependency source `{kind}` is not implemented by this resolver")]
38 UnsupportedSource { kind: &'static str },
39 #[error("dependency `{dependency}` of `{package}` requires {requirement}, but package `{target}` {actual}")]
40 Version {
41 package: String,
42 dependency: String,
43 requirement: String,
44 target: String,
45 actual: String,
46 },
47 #[error("invalid package project: {0}")]
48 Invalid(String),
49 #[error(transparent)]
50 GitPolicy(#[from] GitPolicyError),
51 #[error(transparent)]
52 ServerPolicy(#[from] ServerPolicyError),
53 #[error(transparent)]
54 RegistryPolicy(#[from] RegistryPolicyError),
55 #[error(transparent)]
56 Graph(#[from] GraphError),
57 #[error(transparent)]
58 Lock(#[from] LockError),
59}