Skip to main content

aura_anim_iced/runtime/
policy.rs

1use crate::timing::Duration;
2
3/// Runtime policy for animation motion behavior.
4#[derive(Debug, Clone, Copy, PartialEq)]
5pub struct TickPolicy {
6    tick_interval: Duration,
7}
8
9impl TickPolicy {
10    /// Creates a tick policy.
11    #[must_use]
12    pub const fn new(tick_interval: Duration) -> Self {
13        Self { tick_interval }
14    }
15
16    /// Returns the desired runtime tick interval.
17    #[must_use]
18    pub const fn tick_interval(self) -> Duration {
19        self.tick_interval
20    }
21
22    /// Returns the default target tick interval for runtime-driven animation.
23    #[must_use]
24    pub fn default_tick_interval() -> Duration {
25        Duration::from_millis(16.0)
26    }
27}
28
29impl Default for TickPolicy {
30    fn default() -> Self {
31        Self {
32            tick_interval: Self::default_tick_interval(),
33        }
34    }
35}