pub trait Middleware<T> where T: State + Clone, { fn dispatch( &mut self, store: &mut Store<T>, next: &mut dyn FnMut(T::Action), action: T::Action ); }