diff --git a/src/lib.rs b/src/lib.rs index 3f24fdf..ef99c7b 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -447,6 +447,20 @@ pub fn version_check_request(typ: String) -> (VersionCheckRequest, String) { ) } +pub fn time_based_rand() -> u32 { + let nanos = std::time::SystemTime::now() + .duration_since(std::time::UNIX_EPOCH) + .unwrap() + .as_nanos(); + + let mut x = nanos as u64; + x ^= x << 13; + x ^= x >> 7; + x ^= x << 17; + + (x % 32768) as u32 +} + #[cfg(test)] mod test { use super::*;