Skip to main content

wp_self_update/
error.rs

1use derive_more::From;
2use orion_error::conversion::ToStructError;
3use orion_error::{OrionError, StructError, UnifiedReason};
4
5#[derive(Debug, Clone, PartialEq, From, OrionError)]
6pub enum UpdateReason {
7    #[orion_error(identity = "conf.update_invalid_request")]
8    InvalidRequest,
9    #[orion_error(identity = "sys.update_install_failed")]
10    InstallFailed,
11    #[orion_error(identity = "sys.update_remote_fetch_failed")]
12    RemoteFetchFailed,
13    #[orion_error(identity = "sys.update_integrity_check_failed")]
14    IntegrityCheckFailed,
15    #[orion_error(identity = "logic.update_state_conflict")]
16    StateConflict,
17    #[orion_error(transparent)]
18    Uvs(UnifiedReason),
19}
20
21pub type UpdateError = StructError<UpdateReason>;
22pub type UpdateResult<T> = Result<T, UpdateError>;
23
24pub(crate) fn invalid_request(detail: impl Into<String>) -> UpdateError {
25    UpdateReason::InvalidRequest.to_err().with_detail(detail)
26}
27
28pub(crate) fn install_failed(detail: impl Into<String>) -> UpdateError {
29    UpdateReason::InstallFailed.to_err().with_detail(detail)
30}
31
32pub(crate) fn remote_fetch_failed(detail: impl Into<String>) -> UpdateError {
33    UpdateReason::RemoteFetchFailed.to_err().with_detail(detail)
34}
35
36pub(crate) fn integrity_check_failed(detail: impl Into<String>) -> UpdateError {
37    UpdateReason::IntegrityCheckFailed.to_err().with_detail(detail)
38}
39
40pub(crate) fn state_conflict(detail: impl Into<String>) -> UpdateError {
41    UpdateReason::StateConflict.to_err().with_detail(detail)
42}