pub const IS_BUILD_FLAGSTABLE: bool = true;
pub const IS_SAFE_MODE: bool = crate::ManuallyDrop::is_safe_mode();
pub const IS_SUPPORT_PANIC_TRIG: bool = {
#[cfg(feature = "support_panic_trig")] {
true
}
#[cfg(not(feature = "support_panic_trig"))] {
false
}
};
pub const IS_SUPPORT_HOOKFN_TRIG: bool = {
#[cfg(feature = "support_hookfn_trig")] {
true
}
#[cfg(not(feature = "support_hookfn_trig"))] {
false
}
};
pub const IS_SUPPORT_ABORT_TRIG: bool = {
#[cfg(feature = "support_abort_trig")] {
true
}
#[cfg(not(feature = "support_abort_trig"))] {
false
}
};
pub const IS_SUPPORT_COUNT_TRIG: bool = {
#[cfg(feature = "support_count_trig")] {
true
}
#[cfg(not(feature = "support_count_trig"))] {
false
}
};
pub const IS_SUPPORT_LOOP_TRIG: bool = true;
pub const IS_SUPPORT_LOOP_IS_TRIG: bool = {
#[cfg(feature = "support_istrig_loop")] {
true
}
#[cfg(not(feature = "support_istrig_loop"))] {
false
}
};
pub const IS_FULLINTERNAL_DEBUG_ASSERTIONS: bool = {
#[cfg(feature = "allow_fullinternal_debug_assertions")] {
true
}
#[cfg(not(feature = "allow_fullinternal_debug_assertions"))] {
false
}
};
pub const IS_AUTO_DETECT_DEFTRIG: bool = crate::core::trig::IS_AUTO_DETECT_DEFTRIG;
pub const IS_INVALID_AUTO_DETECT_DEFTRIG: bool = crate::core::trig::IS_INVALID_AUTO_DETECT_DEFTRIG;
#[cfg(test)]
#[test]
fn test_flag_is_safe_mode() {
#[allow(unused_assignments)]
let mut is_checked_c = 0;
#[cfg(feature = "always_safe_manuallydrop")] {
assert_eq!(IS_SAFE_MODE, true);
is_checked_c = 1;
}
if is_checked_c != 1 {}
#[cfg( all(feature = "always_check_in_case_debug_assertions", debug_assertions) )] {
assert_eq!(IS_SAFE_MODE, true);
is_checked_c = 1;
}
#[cfg(not(
any(
all(feature = "always_check_in_case_debug_assertions", debug_assertions),
feature = "always_safe_manuallydrop"
)
))] {
assert_eq!(IS_SAFE_MODE, false);
is_checked_c = is_checked_c + 1;
}
assert_eq!(is_checked_c, 1);
}