pub struct EventLoopProxy<T: 'static> { /* private fields */ }
Expand description
Used to send custom events to EventLoop
.
Implementations§
Source§impl<T: 'static> EventLoopProxy<T>
impl<T: 'static> EventLoopProxy<T>
Sourcepub fn send_event(&self, event: T) -> Result<(), EventLoopClosed<T>>
pub fn send_event(&self, event: T) -> Result<(), EventLoopClosed<T>>
Send an event to the EventLoop
from which this proxy was created. This emits a
UserEvent(event)
event in the event loop, where event
is the value passed to this
function.
Returns an Err
if the associated EventLoop
no longer exists.
Examples found in repository?
examples/window.rs (line 62)
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
fn main() -> Result<(), Box<dyn Error>> {
#[cfg(web_platform)]
console_error_panic_hook::set_once();
tracing::init();
let event_loop = EventLoop::<UserEvent>::with_user_event().build()?;
let _event_loop_proxy = event_loop.create_proxy();
// Wire the user event from another thread.
#[cfg(not(web_platform))]
std::thread::spawn(move || {
// Wake up the `event_loop` once every second and dispatch a custom event
// from a different thread.
info!("Starting to send user event every second");
loop {
let _ = _event_loop_proxy.send_event(UserEvent::WakeUp);
std::thread::sleep(std::time::Duration::from_secs(1));
}
});
let mut state = Application::new(&event_loop);
event_loop.run_app(&mut state).map_err(Into::into)
}
Trait Implementations§
Source§impl<T: 'static> Clone for EventLoopProxy<T>
impl<T: 'static> Clone for EventLoopProxy<T>
Auto Trait Implementations§
impl<T> Freeze for EventLoopProxy<T>
impl<T> RefUnwindSafe for EventLoopProxy<T>
impl<T> Send for EventLoopProxy<T>where
T: Send,
impl<T> Sync for EventLoopProxy<T>where
T: Send,
impl<T> Unpin for EventLoopProxy<T>
impl<T> UnwindSafe for EventLoopProxy<T>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.