| 21 | // with signature of `f` and returns void |
| 22 | template<typename R, typename... Args> |
| 23 | [[nodiscard]] auto pythonRunFromGUIThread( std::function<R( Args... )>&& f ) -> std::function<void( Args... )> |
| 24 | { |
| 25 | return[fLocal = std::move( f )]( Args&&... args ) mutable |
| 26 | { |
| 27 | // fLocal must not be moved |
| 28 | pythonAppendOrRun( fLocal, std::forward<Args>( args )... ); |
| 29 | }; |
| 30 | } |
| 31 | |
| 32 | template<typename F> |
| 33 | [[nodiscard]] auto pythonRunFromGUIThread( F&& f ) |
no test coverage detected