#[derive(Debug, PartialEq)]
pub enum BuildProfile {
Release,
Dev,
Test,
}
pub fn debug_mode() -> bool {
#[cfg(debug_assertions)]
return true;
#[cfg(not(debug_assertions))]
return false;
}
pub fn is_cargo_test() -> bool {
build_profile() == BuildProfile::Test
}
pub fn build_profile() -> BuildProfile {
if cfg!(test) {
return BuildProfile::Test;
}
if debug_mode() {
return BuildProfile::Dev;
}
BuildProfile::Release
}
#[cfg(test)]
mod test {
use crate::utils::build_profile::*;
#[test]
fn build_profile_test() {
assert_eq!(build_profile(), BuildProfile::Test);
}
#[test]
fn is_build_profile_test_() {
assert!(is_cargo_test());
}
#[test]
fn debug_mode_test() {
assert!(debug_mode());
}
}