iced_core/window/
redraw_request.rs

1use crate::time::Instant;
2
3/// A request to redraw a window.
4#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord)]
5pub enum RedrawRequest {
6    /// Redraw the next frame.
7    NextFrame,
8
9    /// Redraw at the given time.
10    At(Instant),
11}
12
13#[cfg(test)]
14mod tests {
15    use super::*;
16    use crate::time::Duration;
17
18    #[test]
19    fn ordering() {
20        let now = Instant::now();
21        let later = now + Duration::from_millis(10);
22
23        assert_eq!(RedrawRequest::NextFrame, RedrawRequest::NextFrame);
24        assert_eq!(RedrawRequest::At(now), RedrawRequest::At(now));
25
26        assert!(RedrawRequest::NextFrame < RedrawRequest::At(now));
27        assert!(RedrawRequest::At(now) > RedrawRequest::NextFrame);
28        assert!(RedrawRequest::At(now) < RedrawRequest::At(later));
29        assert!(RedrawRequest::At(later) > RedrawRequest::At(now));
30
31        assert!(RedrawRequest::NextFrame <= RedrawRequest::NextFrame);
32        assert!(RedrawRequest::NextFrame <= RedrawRequest::At(now));
33        assert!(RedrawRequest::At(now) >= RedrawRequest::NextFrame);
34        assert!(RedrawRequest::At(now) <= RedrawRequest::At(now));
35        assert!(RedrawRequest::At(now) <= RedrawRequest::At(later));
36        assert!(RedrawRequest::At(later) >= RedrawRequest::At(now));
37    }
38}