diff options
author | 2023-01-13 20:33:59 +0100 | |
---|---|---|
committer | 2023-01-13 20:33:59 +0100 | |
commit | 597af315af714f3ecadd195516e80506504dcb26 (patch) | |
tree | 200d0447efc60c9066b762c9f1a00ce55d66def7 /native/src/window/redraw_request.rs | |
parent | d2b66805b350b4bd2ca5cb2818a6c05e3cfb5235 (diff) | |
parent | 507820a8438cec25074f92b72e118e0931fa7f9f (diff) | |
download | iced-597af315af714f3ecadd195516e80506504dcb26.tar.gz iced-597af315af714f3ecadd195516e80506504dcb26.tar.bz2 iced-597af315af714f3ecadd195516e80506504dcb26.zip |
Merge pull request #1647 from iced-rs/feature/widget-request-redraw
Widget-driven animations
Diffstat (limited to 'native/src/window/redraw_request.rs')
-rw-r--r-- | native/src/window/redraw_request.rs | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/native/src/window/redraw_request.rs b/native/src/window/redraw_request.rs new file mode 100644 index 00000000..3b4f0fd3 --- /dev/null +++ b/native/src/window/redraw_request.rs @@ -0,0 +1,38 @@ +use crate::time::Instant; + +/// A request to redraw a window. +#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord)] +pub enum RedrawRequest { + /// Redraw the next frame. + NextFrame, + + /// Redraw at the given time. + At(Instant), +} + +#[cfg(test)] +mod tests { + use super::*; + use std::time::{Duration, Instant}; + + #[test] + fn ordering() { + let now = Instant::now(); + let later = now + Duration::from_millis(10); + + assert_eq!(RedrawRequest::NextFrame, RedrawRequest::NextFrame); + assert_eq!(RedrawRequest::At(now), RedrawRequest::At(now)); + + assert!(RedrawRequest::NextFrame < RedrawRequest::At(now)); + assert!(RedrawRequest::At(now) > RedrawRequest::NextFrame); + assert!(RedrawRequest::At(now) < RedrawRequest::At(later)); + assert!(RedrawRequest::At(later) > RedrawRequest::At(now)); + + assert!(RedrawRequest::NextFrame <= RedrawRequest::NextFrame); + assert!(RedrawRequest::NextFrame <= RedrawRequest::At(now)); + assert!(RedrawRequest::At(now) >= RedrawRequest::NextFrame); + assert!(RedrawRequest::At(now) <= RedrawRequest::At(now)); + assert!(RedrawRequest::At(now) <= RedrawRequest::At(later)); + assert!(RedrawRequest::At(later) >= RedrawRequest::At(now)); + } +} |