iced_core/window/
redraw_request.rs
1use crate::time::Instant;
2
3#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord)]
5pub enum RedrawRequest {
6 NextFrame,
8
9 At(Instant),
11
12 Wait,
14}
15
16impl From<Instant> for RedrawRequest {
17 fn from(time: Instant) -> Self {
18 Self::At(time)
19 }
20}
21
22#[cfg(test)]
23mod tests {
24 use super::*;
25 use crate::time::Duration;
26
27 #[test]
28 fn ordering() {
29 let now = Instant::now();
30 let later = now + Duration::from_millis(10);
31
32 assert_eq!(RedrawRequest::NextFrame, RedrawRequest::NextFrame);
33 assert_eq!(RedrawRequest::At(now), RedrawRequest::At(now));
34
35 assert!(RedrawRequest::NextFrame < RedrawRequest::At(now));
36 assert!(RedrawRequest::At(now) > RedrawRequest::NextFrame);
37 assert!(RedrawRequest::At(now) < RedrawRequest::At(later));
38 assert!(RedrawRequest::At(later) > RedrawRequest::At(now));
39
40 assert!(RedrawRequest::NextFrame <= RedrawRequest::NextFrame);
41 assert!(RedrawRequest::NextFrame <= RedrawRequest::At(now));
42 assert!(RedrawRequest::At(now) >= RedrawRequest::NextFrame);
43 assert!(RedrawRequest::At(now) <= RedrawRequest::At(now));
44 assert!(RedrawRequest::At(now) <= RedrawRequest::At(later));
45 assert!(RedrawRequest::At(later) >= RedrawRequest::At(now));
46
47 assert!(RedrawRequest::Wait > RedrawRequest::NextFrame);
48 assert!(RedrawRequest::Wait > RedrawRequest::At(later));
49 }
50}