Something went wrong. Try again.
A hardware-accelerated GPU terminal emulator focusing to run in desktops and browsers.
Something went wrong. Try again.
869 B · 34 lines
Rust
at main
1234567891011121314151617181920212223242526272829303132333435use std::rc::Weak;use std::sync::mpsc::{SendError, Sender};
use super::runner::Execution;use crate::event_loop::EventLoopClosed;use crate::platform_impl::platform::r#async::Waker;
pub struct EventLoopProxy<T: 'static> { runner: Waker<Weak<Execution>>, sender: Sender<T>,}
impl<T: 'static> EventLoopProxy<T> { pub fn new(runner: Waker<Weak<Execution>>, sender: Sender<T>) -> Self { Self { runner, sender } }
pub fn send_event(&self, event: T) -> Result<(), EventLoopClosed<T>> { self.sender .send(event) .map_err(|SendError(event)| EventLoopClosed(event))?; self.runner.wake(); Ok(()) }}
impl<T: 'static> Clone for EventLoopProxy<T> { fn clone(&self) -> Self { Self { runner: self.runner.clone(), sender: self.sender.clone(), } }}