winit/platform_impl/linux/wayland/event_loop/
proxy.rs
1use std::sync::mpsc::SendError;
4
5use sctk::reexports::calloop::channel::Sender;
6
7use crate::event_loop::EventLoopClosed;
8
9pub struct EventLoopProxy<T: 'static> {
11 user_events_sender: Sender<T>,
12}
13
14impl<T: 'static> Clone for EventLoopProxy<T> {
15 fn clone(&self) -> Self {
16 EventLoopProxy { user_events_sender: self.user_events_sender.clone() }
17 }
18}
19
20impl<T: 'static> EventLoopProxy<T> {
21 pub fn new(user_events_sender: Sender<T>) -> Self {
22 Self { user_events_sender }
23 }
24
25 pub fn send_event(&self, event: T) -> Result<(), EventLoopClosed<T>> {
26 self.user_events_sender.send(event).map_err(|SendError(error)| EventLoopClosed(error))
27 }
28}