harn_cli/package/
errors.rs1use std::result::Result as StdResult;
8
9#[derive(Debug, thiserror::Error)]
10pub enum PackageError {
11 #[error("{0}")]
12 Manifest(String),
13 #[error("{0}")]
14 Lockfile(String),
15 #[error("{0}")]
16 Registry(String),
17 #[error("{0}")]
18 Validation(String),
19 #[error("{0}")]
20 Ops(String),
21 #[error("{0}")]
22 Extensions(String),
23 #[error("{0}")]
24 Skill(String),
25 #[error("{0}")]
30 Other(String),
31}
32
33impl PackageError {
34 pub fn message(&self) -> &str {
35 match self {
36 PackageError::Manifest(s)
37 | PackageError::Lockfile(s)
38 | PackageError::Registry(s)
39 | PackageError::Validation(s)
40 | PackageError::Ops(s)
41 | PackageError::Extensions(s)
42 | PackageError::Skill(s)
43 | PackageError::Other(s) => s.as_str(),
44 }
45 }
46}
47
48impl From<String> for PackageError {
49 fn from(value: String) -> Self {
50 PackageError::Other(value)
51 }
52}
53
54impl From<&str> for PackageError {
55 fn from(value: &str) -> Self {
56 PackageError::Other(value.to_string())
57 }
58}
59
60impl From<PackageError> for String {
65 fn from(error: PackageError) -> Self {
66 error.to_string()
67 }
68}
69
70#[allow(dead_code)]
71pub type PackageResult<T> = StdResult<T, PackageError>;