tina-core 0.0.2

Tina platform
Documentation
//! 相关声明宏
/// 国际化字符串宏
#[macro_export]
macro_rules! i18n_string {
    ($key:expr $(,)?) => {
        $crate::tina::data::i18n_string::I18nString::from_key($key)
    };
    ($key:expr, $(($arg_key:expr,$arg_value:expr)),+ $(,)?) => {
        $crate::tina::data::i18n_string::I18nString::from($key, vec![$(($arg_key, $arg_value)),+])
    };
    ($key:expr, $($arg:expr),+ $(,)?) => {
        $crate::tina::data::i18n_string::I18nString::from_key_args($key, vec![$($arg),+])
    };
}

/// 通用AppError构造
#[macro_export]
macro_rules! app_error {
    ($return_code:expr $(,)?) => {
        $crate::tina::data::app_error::AppError::new($crate::tina::data::return_code::IntoDynReturnCode::into_dyn_return_code($return_code), $crate::tina::data::return_code::IReturnCode::get_code_description(&$return_code), $crate::anyhow!($crate::tina::data::return_code::IReturnCode::get_code_description(&$return_code).get_string($crate::tina::i18n::ResourceBundle::get_default_locale().as_str())), file!(), line!())
    };
    ($return_code:expr, $return_msg:expr $(,)?) => {
        $crate::tina::data::app_error::AppError::new($crate::tina::data::return_code::IntoDynReturnCode::into_dyn_return_code($return_code), $return_msg, $crate::anyhow!($return_msg.get_string($crate::tina::i18n::ResourceBundle::get_default_locale().as_str())), file!(), line!())
    };
    ($return_code:expr, $return_msg:expr, $log_msg:expr $(,)?) => {
        $crate::tina::data::app_error::AppError::new($crate::tina::data::return_code::IntoDynReturnCode::into_dyn_return_code($return_code), $return_msg, $crate::anyhow!($log_msg), file!(), line!())
    };
    ($return_code:expr, $return_msg:expr, $log_msg:expr, $($arg:expr),+ $(,)?) => {
        $crate::tina::data::app_error::AppError::new($crate::tina::data::return_code::IntoDynReturnCode::into_dyn_return_code($return_code), $return_msg, $crate::anyhow!(format!($log_msg,$($arg),+)), file!(), line!())
    };
}

/// 构造系统内部错误
#[macro_export]
macro_rules! app_system_error {
    ($msg:expr $(,)?) => {
        $crate::app_error!($crate::tina::data::http_status::HttpStatus::Error, $crate::tina::data::return_code::IReturnCode::get_code_description(&$crate::tina::data::http_status::HttpStatus::Error), $msg)
    };
    ($msg:expr, $($arg:expr),+ $(,)?) => {
        $crate::app_error!($crate::tina::data::http_status::HttpStatus::Error, $crate::tina::data::return_code::IReturnCode::get_code_description(&$crate::tina::data::http_status::HttpStatus::Error), $msg, $($arg),+)
    };
}

/// 构造系统内部错误
#[macro_export]
macro_rules! app_system_error_with_msg {
    ($msg:expr $(,)?) => {
        $crate::app_error!($crate::tina::data::http_status::HttpStatus::Error, $msg)
    };
    ($msg:expr, $log_msg:expr $(,)?) => {
        $crate::app_error!($crate::tina::data::http_status::HttpStatus::Error, $msg, $log_msg)
    };
    ($msg:expr, $log_msg:expr, $($arg:expr),+ $(,)?) => {
        $crate::app_error!($crate::tina::data::http_status::HttpStatus::Error, $msg, $log_msg, $($arg),+)
    };
}

/// 构造参数校验错误
#[macro_export]
macro_rules! app_param_check_error {
    ($msg:expr $(,)?) => {
        $crate::app_error!($crate::tina::data::http_status::HttpStatus::BadRequest, $crate::tina::data::return_code::IReturnCode::get_code_description(&$crate::tina::data::http_status::HttpStatus::BadRequest), $msg)
    };
    ($msg:expr, $($arg:expr),+ $(,)?) => {
        $crate::app_error!($crate::tina::data::http_status::HttpStatus::BadRequest, $crate::tina::data::return_code::IReturnCode::get_code_description(&$crate::tina::data::http_status::HttpStatus::BadRequest), $msg, $($arg),+)
    };
}

/// 构造参数校验错误
#[macro_export]
macro_rules! app_param_check_error_with_msg {
    ($msg:expr $(,)?) => {
        $crate::app_error!($crate::tina::data::http_status::HttpStatus::BadRequest, $msg)
    };
    ($msg:expr, $log_msg:expr $(,)?) => {
        $crate::app_error!($crate::tina::data::http_status::HttpStatus::BadRequest, $msg, $log_msg)
    };
    ($msg:expr, $log_msg:expr, $($arg:expr),+ $(,)?) => {
        $crate::app_error!($crate::tina::data::http_status::HttpStatus::BadRequest, $msg, $log_msg, $($arg),+)
    };
}

/// 错误转换
#[macro_export]
macro_rules! app_error_from {
    () => {
        |err| $crate::tina::data::app_error::AppError::from_err(err, file!(), line!())
    };
    ($err:expr $(,)?) => {
        $crate::tina::data::app_error::AppError::from_err($err, file!(), line!())
    };
}

/// 错误转换
#[macro_export]
macro_rules! app_error_from_none_static {
    () => {
        |err| $crate::tina::data::app_error::AppError::from_none_static_err(err, file!(), line!())
    };
    ($err:expr $(,)?) => {
        $crate::tina::data::app_error::AppError::from_none_static_err($err, file!(), line!())
    };
}

/// 错误转换
#[macro_export]
macro_rules! app_error_from_none_send {
    () => {
        |err| $crate::tina::data::app_error::AppError::from_none_send_err(err, file!(), line!())
    };
    ($err:expr $(,)?) => {
        $crate::tina::data::app_error::AppError::from_none_send_err($err, file!(), line!())
    };
}

/// 条件编译调试
#[macro_export]
macro_rules! app_debug {
    (target: $target:expr, $($arg:tt)+) => (
        if cfg!(debug_assertions) {
            $crate::debug!(target: $target, $($arg)+)
        }
    );
    ($($arg:tt)+) => (
        if cfg!(debug_assertions) {
            $crate::debug!($($arg)+)
        }
    )
}