Skip to main content

flatland_play_loop/
movement.rs

1//! Movement intent interval (30 Hz sim, client sends at ~20 Hz).
2
3use std::time::{Duration, Instant};
4
5pub const MOVEMENT_SEND_INTERVAL_MS: u128 = 50;
6
7pub fn movement_interval_elapsed(sent_at: Instant, now: Instant) -> bool {
8    now.duration_since(sent_at) >= Duration::from_millis(MOVEMENT_SEND_INTERVAL_MS as u64)
9}
10
11#[cfg(test)]
12mod tests {
13    use super::*;
14
15    #[test]
16    fn interval_respects_50ms() {
17        let start = Instant::now();
18        assert!(!movement_interval_elapsed(start, start));
19        let later = start + Duration::from_millis(49);
20        assert!(!movement_interval_elapsed(start, later));
21        let ok = start + Duration::from_millis(50);
22        assert!(movement_interval_elapsed(start, ok));
23    }
24}