# errors.rs - source
Source of the Rust file `db/db-core/src/errors.rs`.

    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50

    // Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    // SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    //
    // SPDX-License-Identifier: AGPL-3.0-or-later

    //! represents all the ways a trait can fail using this crate
    use std::error::Error as StdError;

    //use derive_more::{error, Error as DeriveError};
    use thiserror::Error;

    /// Error data structure grouping various error subtypes
    #[derive(Debug, Error)]
    pub enum DBError {
        /// errors that are specific to a database implementation
        #[error("{0}")]
        DBError(#[source] BoxDynError),
        /// Username is taken
        #[error("Username is taken")]
        UsernameTaken,
        /// Email is taken
        #[error("Email is taken")]
        EmailTaken,
        /// Secret is taken
        #[error("Secret is taken")]
        SecretTaken,
        /// Captcha key is taken
        #[error("Captcha key is taken")]
        CaptchaKeyTaken,
        /// Account not found
        #[error("Account not found")]
        AccountNotFound,

        /// Captcha not found
        #[error("Captcha not found")]
        CaptchaNotFound,
        /// Traffic pattern not found
        #[error("Traffic pattern not found")]
        TrafficPatternNotFound,

        /// Notification not found
        #[error("Notification not found")]
        NotificationNotFound,
    }

    /// Convenience type alias for grouping driver-specific errors
    pub type BoxDynError = Box<dyn StdError + 'static + Send + Sync>;

    /// Generic result data structure
    pub type DBResult<V> = std::result::Result<V, DBError>;