light_fw_cli_core/
error.rs1use thiserror::Error;
2
3#[derive(Debug, Error)]
4pub enum Error {
5 #[error("IO error: {0}")]
6 Io(#[from] std::io::Error),
7
8 #[error("TOML parse error: {0}")]
9 Toml(#[from] toml_edit::TomlError),
10
11 #[error("TOML serialize error: {0}")]
12 TomlSer(#[from] toml_edit::ser::Error),
13
14 #[error("JSON error: {0}")]
15 Json(#[from] serde_json::Error),
16
17 #[error("Semver error: {0}")]
18 Semver(#[from] semver::Error),
19
20 #[error("Walkdir error: {0}")]
21 Walkdir(#[from] walkdir::Error),
22
23 #[error("Ignore error: {0}")]
24 Ignore(#[from] ignore::Error),
25
26 #[error("Template parse error: {0}")]
27 TemplateParse(String),
28
29 #[error("Manifest error: {0}")]
30 Manifest(String),
31
32 #[error("команда `{program}` завершилась с кодом {code}: {stderr}")]
34 CommandFailed {
35 program: String,
36 code: i32,
37 stderr: String,
38 },
39
40 #[error("команда `{0}` не найдена (установлен ли инструмент?)")]
42 CommandNotFound(String),
43
44 #[error("компонент `{0}` не найден")]
46 ComponentNotFound(String),
47
48 #[error("компонент `{component}` несовместим: {reason}")]
50 Incompatible { component: String, reason: String },
51
52 #[error("компонент `{0}` не установлен")]
54 NotInstalled(String),
55
56 #[error("конфликт компонентов: {0}")]
58 Conflict(String),
59
60 #[error("от компонента `{0}` зависят другие компоненты — удалите их вместе")]
62 InUse(String),
63
64 #[error("операция отменена")]
66 Aborted,
67
68 #[error(
70 "компонент `{0}` не найден в vendor/, установите его без `--offline` на машине с сетью"
71 )]
72 Offline(String),
73
74 #[error("ошибка light.lock: {0}")]
76 Lockfile(String),
77
78 #[error("ошибка резервной копии: {0}")]
80 Backup(String),
81
82 #[error("ошибка публикации: {0}")]
84 Publish(String),
85
86 #[error("ошибка init: {0}")]
88 Init(String),
89
90 #[error(
92 "crate {name} v{version} already published; bump version in Cargo.toml before publishing"
93 )]
94 AlreadyPublished { name: String, version: String },
95
96 #[cfg(feature = "network")]
98 #[error("сетевой запрос не удался: {0}")]
99 Http(#[from] reqwest::Error),
100}
101
102pub type Result<T> = std::result::Result<T, Error>;