use super::TRACKER;
pub fn track_static_init<T>(
#[cfg_attr(not(feature = "track"), allow(unused_variables))] var_name: &str,
#[cfg_attr(not(feature = "track"), allow(unused_variables))] var_id: usize,
#[cfg_attr(not(feature = "track"), allow(unused_variables))] type_name: &str,
#[cfg_attr(not(feature = "track"), allow(unused_variables))] is_mutable: bool,
value: T,
) -> T {
#[cfg(feature = "track")]
{
let mut tracker = TRACKER.lock();
tracker.record_static_init(var_name, var_id, type_name, is_mutable);
}
value
}
#[inline(always)]
pub fn track_static_access(
#[cfg_attr(not(feature = "track"), allow(unused_variables))] var_id: usize,
#[cfg_attr(not(feature = "track"), allow(unused_variables))] var_name: &str,
#[cfg_attr(not(feature = "track"), allow(unused_variables))] is_write: bool,
#[cfg_attr(not(feature = "track"), allow(unused_variables))] location: &str,
) {
#[cfg(feature = "track")]
{
let mut tracker = TRACKER.lock();
tracker.record_static_access(var_id, var_name, is_write, location);
}
}
#[inline(always)]
pub fn track_const_eval<T>(
#[cfg_attr(not(feature = "track"), allow(unused_variables))] const_name: &str,
#[cfg_attr(not(feature = "track"), allow(unused_variables))] const_id: usize,
#[cfg_attr(not(feature = "track"), allow(unused_variables))] type_name: &str,
#[cfg_attr(not(feature = "track"), allow(unused_variables))] location: &str,
value: T,
) -> T {
#[cfg(feature = "track")]
{
let mut tracker = TRACKER.lock();
tracker.record_const_eval(const_name, const_id, type_name, location);
}
value
}