Skip to main content

runmat_package/source/project_resolver/
error.rs

1use 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}