Skip to main content

EventHandler

Trait EventHandler 

Source
pub trait EventHandler<E, Args, T = ()>: 'static {
    // Required method
    fn call(&mut self, event: E, env: &Environment) -> T;
}
Expand description

A repeatable event handler that consumes a typed event payload plus environment-extracted arguments.

Implemented for any closure of the form FnMut(E, A1, ..., An) -> T where each Ai: Extractor. The shape mirrors Handler but inserts an “event” position in the leading argument slot. This lets event callbacks on views like Photo::on_event, Video::on_event, and WebView::on_event reuse the same State<T> / Environment extractor machinery as Button::action.

The Args tuple only counts extractor positions — the event payload is not part of the tuple — so a closure like |event: E| { ... } matches EventHandler<E, (), ()> and reads as “no extractors, returns unit”.

Required Methods§

Source

fn call(&mut self, event: E, env: &Environment) -> T

Invokes the handler with the given event payload and the extractor arguments resolved from env.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

Source§

impl<F, E, Output> EventHandler<E, (), Output> for F
where F: FnMut(E) -> Output + 'static,

Source§

impl<Func, E, Output, A, B, C, D, E1, F, G, H> EventHandler<E, (A, B, C, D, E1, F, G, H), Output> for Func
where Func: FnMut(E, A, B, C, D, E1, F, G, H) -> Output + 'static, A: Extractor, B: Extractor, C: Extractor, D: Extractor, E1: Extractor, F: Extractor, G: Extractor, H: Extractor,

Source§

impl<Func, E, Output, A, B, C, D, E1, F, G> EventHandler<E, (A, B, C, D, E1, F, G), Output> for Func
where Func: FnMut(E, A, B, C, D, E1, F, G) -> Output + 'static, A: Extractor, B: Extractor, C: Extractor, D: Extractor, E1: Extractor, F: Extractor, G: Extractor,

Source§

impl<Func, E, Output, A, B, C, D, E1, F> EventHandler<E, (A, B, C, D, E1, F), Output> for Func
where Func: FnMut(E, A, B, C, D, E1, F) -> Output + 'static, A: Extractor, B: Extractor, C: Extractor, D: Extractor, E1: Extractor, F: Extractor,

Source§

impl<Func, E, Output, A, B, C, D, E1> EventHandler<E, (A, B, C, D, E1), Output> for Func
where Func: FnMut(E, A, B, C, D, E1) -> Output + 'static, A: Extractor, B: Extractor, C: Extractor, D: Extractor, E1: Extractor,

Source§

impl<Func, E, Output, A, B, C, D> EventHandler<E, (A, B, C, D), Output> for Func
where Func: FnMut(E, A, B, C, D) -> Output + 'static, A: Extractor, B: Extractor, C: Extractor, D: Extractor,

Source§

impl<Func, E, Output, A, B, C> EventHandler<E, (A, B, C), Output> for Func
where Func: FnMut(E, A, B, C) -> Output + 'static, A: Extractor, B: Extractor, C: Extractor,

Source§

impl<Func, E, Output, A, B> EventHandler<E, (A, B), Output> for Func
where Func: FnMut(E, A, B) -> Output + 'static, A: Extractor, B: Extractor,

Source§

impl<Func, E, Output, A> EventHandler<E, (A,), Output> for Func
where Func: FnMut(E, A) -> Output + 'static, A: Extractor,