cipherstash_dynamodb/errors/
mod.rsuse thiserror::Error;
use crate::traits::PrimaryKeyError;
pub use crate::{
    crypto::{CryptoError, SealError},
    traits::{ReadConversionError, WriteConversionError},
};
pub use cipherstash_client::{
    config::errors::ConfigError, encryption::EncryptionError, zero_kms::errors::LoadConfigError,
};
pub use aws_sdk_dynamodb::error::BuildError;
#[derive(Error, Debug)]
pub enum PutError {
    #[error("PrimaryKeyError: {0}")]
    PrimaryKeyError(#[from] PrimaryKeyError),
    #[error("AwsError: {0}")]
    Aws(String),
    #[error("AwsBuildError: {0}")]
    AwsBuildError(#[from] BuildError),
    #[error("Write Conversion Error: {0}")]
    WriteConversion(#[from] WriteConversionError),
    #[error("SealError: {0}")]
    Seal(#[from] SealError),
    #[error("CryptoError: {0}")]
    Crypto(#[from] CryptoError),
    #[error("Encryption Error: {0}")]
    Encryption(#[from] EncryptionError),
}
#[derive(Error, Debug)]
pub enum GetError {
    #[error("PrimaryKeyError: {0}")]
    PrimaryKeyError(#[from] PrimaryKeyError),
    #[error("Decrypt Error: {0}")]
    DecryptError(#[from] DecryptError),
    #[error("Encryption Error: {0}")]
    Encryption(#[from] EncryptionError),
    #[error("AwsError: {0}")]
    Aws(String),
}
#[derive(Error, Debug)]
pub enum DeleteError {
    #[error("PrimaryKeyError: {0}")]
    PrimaryKeyError(#[from] PrimaryKeyError),
    #[error("Encryption Error: {0}")]
    Encryption(#[from] EncryptionError),
    #[error("AwsBuildError: {0}")]
    AwsBuildError(#[from] BuildError),
    #[error("AwsError: {0}")]
    Aws(String),
}
#[derive(Error, Debug)]
pub enum DecryptError {
    #[error("ReadConversionError: {0}")]
    ReadConversionError(#[from] ReadConversionError),
    #[error("SealError: {0}")]
    SealError(#[from] SealError),
}
#[derive(Error, Debug)]
pub enum QueryError {
    #[error("PrimaryKeyError: {0}")]
    PrimaryKeyError(#[from] PrimaryKeyError),
    #[error("InvaldQuery: {0}")]
    InvalidQuery(String),
    #[error("CryptoError: {0}")]
    CryptoError(#[from] CryptoError),
    #[error("EncryptionError: {0}")]
    EncryptionError(#[from] EncryptionError),
    #[error("Decrypt Error: {0}")]
    DecryptError(#[from] DecryptError),
    #[error("AwsError: {0}")]
    AwsError(String),
    #[error("{0}")]
    Other(String),
}
#[derive(Error, Debug)]
pub enum InitError {
    #[error("ConfigError: {0}")]
    Config(#[from] ConfigError),
    #[error("LoadConfigError: {0}")]
    LoadConfig(#[from] LoadConfigError),
}
#[derive(Error, Debug)]
pub enum Error {
    #[error("InitError: {0}")]
    InitError(#[from] InitError),
    #[error("PutError: {0}")]
    PutError(#[from] PutError),
    #[error("GetError: {0}")]
    GetError(#[from] GetError),
    #[error("DeleteError: {0}")]
    DeleteError(#[from] DeleteError),
    #[error("QueryError: {0}")]
    QueryError(#[from] QueryError),
}