winit_readme/
winit_readme.rs

1//! The example in `winit`'s readme, adapted to use `winit-main`.
2
3use winit_main::reexports::{
4    event::{Event, WindowEvent},
5    window::WindowAttributes,
6};
7#[cfg(feature = "proc")]
8use winit_main::{
9    EventLoopHandle,
10    EventReceiver,
11};
12
13
14#[cfg(feature = "proc")]
15#[winit_main::main]
16fn main(event_loop: EventLoopHandle, events: EventReceiver) {
17    let window = event_loop
18        .create_window(WindowAttributes::default())
19        .unwrap();
20
21    for event in events.iter() {
22        if matches!(
23            event,
24            Event::WindowEvent {
25                event: WindowEvent::CloseRequested,
26                window_id,
27            } if window_id == window.id()
28        ) {
29            break;
30        }
31    }
32}
33
34#[cfg(not(feature = "proc"))]
35fn main() {
36    winit_main::run(|event_loop, events| {
37        let window = event_loop
38            .create_window(WindowAttributes::default())
39            .unwrap();
40
41        for event in events.iter() {
42            if matches!(
43                event,
44                Event::WindowEvent {
45                    event: WindowEvent::CloseRequested,
46                    window_id,
47                } if window_id == window.id()
48            ) {
49                break;
50            }
51        }
52    });
53}