use instant::Instant; use std::time::Duration; use winit::{ event::{Event, StartCause, WindowEvent}, event_loop::{ControlFlow, EventLoop}, window::WindowBuilder, }; fn main() { let event_loop = EventLoop::new(); let _window = WindowBuilder::new() .with_title("A fantastic window!") .build(&event_loop) .unwrap(); let timer_length = Duration::new(1, 0); event_loop.run(move |event, _, control_flow| { if let Event::WindowEvent { event, .. } = &event { // Print only Window events to reduce noise println!("{:?}", event); } match event { Event::NewEvents(StartCause::Init) => { *control_flow = ControlFlow::WaitUntil(Instant::now() + timer_length) } Event::NewEvents(StartCause::ResumeTimeReached { .. }) => { *control_flow = ControlFlow::WaitUntil(Instant::now() + timer_length); println!("\nTimer\n"); } Event::WindowEvent { event: WindowEvent::CloseRequested, .. } => *control_flow = ControlFlow::Exit, _ => (), } }); }