shadow_crypt_shell/
errors.rs

1use shadow_crypt_core::errors::{CryptError, HeaderError, KeyDerivationError};
2use std::io;
3use thiserror::Error;
4
5/// Convenience type for workflow results.
6pub type WorkflowResult<T> = Result<T, WorkflowError>;
7
8#[derive(Debug, Error)]
9pub enum WorkflowError {
10    #[error("User input error: {0}")]
11    UserInput(String),
12
13    #[error("Password error: {0}")]
14    Password(String),
15
16    #[error("File error: {0}")]
17    File(String),
18
19    #[error("I/O error: {0}")]
20    Io(#[from] io::Error),
21
22    #[error("Key derivation error: {0}")]
23    KeyDerivation(#[from] KeyDerivationError),
24
25    #[error("Salt generation error: {0}")]
26    SaltGeneration(String),
27
28    #[error("Nonce generation error: {0}")]
29    NonceGeneration(String),
30
31    #[error("Cryptography error: {0}")]
32    CryptographyError(#[from] CryptError),
33
34    #[error("Header error: {0}")]
35    HeaderError(#[from] HeaderError),
36
37    #[error("Parse error: {0}")]
38    Parse(String),
39
40    #[error("Encryption error: {0}")]
41    Encryption(String),
42
43    #[error("Decryption error: {0}")]
44    Decryption(String),
45
46    #[error("Listing error: {0}")]
47    Listing(String),
48}