It's not clearly stated, but T is actually a type you get to pick; it's the type of “user events” which can wake the winit event loop from another thread. If you're not using that feature, the default is (), so you would want the parameter types Event<'_, ()>, EventLoopWindowTarget<()>.