use std::time::{Duration, SystemTime, UNIX_EPOCH};
pub(crate) use crate::runtime_env::read_env_var;
pub fn read_bool_env(name: &str, default: bool) -> bool {
read_env_var(name)
.map(|value| matches!(value.as_str(), "1" | "true" | "TRUE" | "yes" | "YES"))
.unwrap_or(default)
}
pub fn duration_to_ms_u64(duration: Duration) -> u64 {
let millis = duration.as_millis();
if millis > u128::from(u64::MAX) {
u64::MAX
} else {
millis as u64
}
}
pub fn current_unix_ms() -> u64 {
SystemTime::now()
.duration_since(UNIX_EPOCH)
.map_or(0, |duration| {
duration.as_millis().min(u128::from(u64::MAX)) as u64
})
}