/// Version information pub const VERSION: &str = match option_env!("APP_VERSION") { None => env!("CARGO_PKG_VERSION"), Some(v) => v, }; /// Checks if tracking is enabled pub fn can_track() -> bool { can_track_inner(Some(VERSION)) } fn can_track_inner>(version: Option) -> bool { if let Some(v) = version { let v_str = v.as_ref(); !(v_str.contains("dev") || v_str.contains("0.1.0")) } else { true // If no version provided, assume prod } } #[cfg(test)] mod tests { use super::*; #[test] fn usage_enabled_none_is_prod_true() { assert!(can_track_inner(Some("1.0.0"))); } #[test] fn usage_enabled_none_is_prod_false() { assert!(!can_track_inner(Some("0.1.0-dev"))); assert!(!can_track_inner(Some("1.0.0-dev"))); assert!(!can_track_inner(Some("0.1.0"))); } }