EventLoopHandle

Struct EventLoopHandle 

Source
pub struct EventLoopHandle { /* private fields */ }
Expand description

Handle for registering custom event sources with the event loop

Supports timers, channels, file descriptors, and custom event sources.

Implementations§

Source§

impl EventLoopHandle

Source

pub fn new(system: Weak<RefCell<dyn WaylandSystemOps>>) -> EventLoopHandle

Source

pub fn insert_source<S, F, R>( &self, source: S, callback: F, ) -> Result<RegistrationToken, Error>
where S: EventSource<Ret = R> + 'static, F: FnMut(<S as EventSource>::Event, &mut <S as EventSource>::Metadata, &mut AppState) -> R + 'static,

Register a custom event source with the event loop

Returns a registration token that can be used to remove the source later.

Source

pub fn add_timer<F>( &self, duration: Duration, callback: F, ) -> Result<RegistrationToken, Error>
where F: FnMut(Instant, &mut AppState) -> TimeoutAction + 'static,

Add a timer that fires after the specified duration

Return TimeoutAction::Drop for one-shot, ToDuration(d) to repeat, or ToInstant(i) for next deadline.

Source

pub fn add_timer_at<F>( &self, deadline: Instant, callback: F, ) -> Result<RegistrationToken, Error>
where F: FnMut(Instant, &mut AppState) -> TimeoutAction + 'static,

Add a timer that fires at a specific instant

Callback receives the deadline and can return TimeoutAction::ToInstant to reschedule.

Source

pub fn add_channel<T, F>( &self, callback: F, ) -> Result<(RegistrationToken, Sender<T>), Error>
where T: 'static, F: FnMut(T, &mut AppState) + 'static,

Add a channel for sending messages to the event loop from any thread

The sender can be cloned and sent across threads. Messages are queued and processed on the main thread.

Source

pub fn add_fd<F, T>( &self, fd: T, interest: Interest, mode: Mode, callback: F, ) -> Result<RegistrationToken, Error>
where T: AsFd + 'static, F: FnMut(&mut AppState) + 'static,

Add a file descriptor to be monitored for readability or writability

Callback is invoked when the file descriptor becomes ready according to the interest.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> Downcast for T
where T: Any,

Source§

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>

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)

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)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more