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 51 52 53 54 55 56
//! # Common
//!
//! Commonly used libraries, functions and statics, made public for easy use in modules.
use config::ConfigError;
use std::sync::atomic::{AtomicBool, Ordering};
use tokio::task::JoinError;
pub use uuid::Uuid;
/// static boolean that can be used to check if we need psql connection
pub static USE_PSQL_BACKEND: AtomicBool = AtomicBool::new(true);
/// public function to check value of [USE_PSQL_BACKEND]
pub fn use_psql_get() -> bool {
    USE_PSQL_BACKEND.load(Ordering::Relaxed)
}
/// Crate Errors
#[derive(thiserror::Error, Debug)]
pub enum ArrErr {
    #[error("error: {0}")]
    /// return new [Error](thiserror::Error) with provided string
    Error(String),
    #[error("join error: {0}")]
    /// return new [`JoinError`] with calling params
    JoinError(#[from] JoinError),
    #[error("configuration error: {0}")]
    /// return new [`ConfigError`] with calling params
    ConfigError(#[from] ConfigError),
    #[error("convert int error: {0}")]
    /// return new [`std::num::TryFromIntError`] with calling params
    IntError(#[from] std::num::TryFromIntError),
    /// return new [`prost_types::TimestampError`] with calling params
    #[error("create timestamp error: {0}")]
    ProstTimestampError(#[from] prost_types::TimestampError),
    /// return new [`deadpool_postgres::CreatePoolError`] with calling params
    #[error("create Pool error: {0}")]
    CreatePoolError(#[from] deadpool_postgres::CreatePoolError),
    #[error("io error: {0}")]
    /// return new [`std::io::Error`] with calling params
    IoError(#[from] std::io::Error),
    #[error("uuid error: {0}")]
    /// return new [`uuid::Error`] with calling params
    UuidError(#[from] uuid::Error),
    #[error("error: {0}")]
    /// return new [`anyhow::Error`] with calling params
    AnyhowError(#[from] anyhow::Error),
}