summaryrefslogtreecommitdiff
path: root/src/cmds/converter/workspace_operation_error.rs
blob: f2f71d03809ffb43987438c7235f2f0cacc88de2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
use crate::systems::cmd::errors::CmdExecuteError;
use just_enough_vcs::system::workspace::workspace::error::WorkspaceOperationError;

pub struct JVWorkspaceOperationErrorConverter;

impl JVWorkspaceOperationErrorConverter {
    pub fn to_exec_error(err: WorkspaceOperationError) -> CmdExecuteError {
        match err {
            WorkspaceOperationError::Io(error) => CmdExecuteError::Io(error),
            WorkspaceOperationError::Other(msg) => CmdExecuteError::Error(msg),
            WorkspaceOperationError::ConfigNotFound => {
                CmdExecuteError::Error("Config not found".to_string())
            }
            WorkspaceOperationError::WorkspaceNotFound => {
                CmdExecuteError::Error("Workspace not found".to_string())
            }
            WorkspaceOperationError::HandleLock(handle_lock_error) => {
                CmdExecuteError::Error(format!("Handle lock error: {}", handle_lock_error))
            }
            WorkspaceOperationError::DataRead(data_read_error) => {
                CmdExecuteError::Error(format!("Data read error: {}", data_read_error))
            }
            WorkspaceOperationError::DataWrite(data_write_error) => {
                CmdExecuteError::Error(format!("Data write error: {}", data_write_error))
            }
            WorkspaceOperationError::DataApply(data_apply_error) => {
                CmdExecuteError::Error(format!("Data apply error: {}", data_apply_error))
            }
            WorkspaceOperationError::IDAliasError(id_alias_error) => {
                CmdExecuteError::Error(format!("ID alias error: {}", id_alias_error))
            }
        }
    }
}