funny that wgpu started checking lifetimes for surfaces using borrowed windows in january and then winit started requiring creation of windows within its event loop in april. it was fun while it lasted ig
also with winit switching to a dedicated trait for event handling, you can't just make it a capture; you must write out the lifetime on your state wrapper. peak api redesign
