1use bitwarden_error::bitwarden_error;
2use thiserror::Error;
3
4use crate::CipherError;
5
6#[allow(missing_docs)]
8#[bitwarden_error(flat)]
9#[derive(Debug, Error)]
10pub enum EncryptError {
11 #[error(transparent)]
12 Crypto(#[from] bitwarden_crypto::CryptoError),
13 #[error("Client User Id has not been set")]
14 MissingUserId,
15}
16
17#[allow(missing_docs)]
19#[bitwarden_error(flat)]
20#[derive(Debug, Error)]
21pub enum DecryptError {
22 #[error(transparent)]
23 Crypto(#[from] bitwarden_crypto::CryptoError),
24}
25
26#[allow(missing_docs)]
27#[derive(Debug, Error)]
28pub enum VaultParseError {
29 #[error(transparent)]
30 Chrono(#[from] chrono::ParseError),
31 #[error(transparent)]
32 Crypto(#[from] bitwarden_crypto::CryptoError),
33 #[error(transparent)]
34 MissingField(#[from] bitwarden_core::MissingFieldError),
35 #[error(transparent)]
36 SerdeJson(#[from] serde_json::Error),
37}
38
39impl From<VaultParseError> for CipherError {
40 fn from(e: VaultParseError) -> Self {
41 match e {
42 VaultParseError::Crypto(e) => Self::Crypto(e),
43 VaultParseError::MissingField(e) => Self::MissingField(e),
44 VaultParseError::Chrono(e) => Self::Chrono(e),
45 VaultParseError::SerdeJson(e) => Self::SerdeJson(e),
46 }
47 }
48}