#pragma once #include "interfaces/input.hpp" #include #include #include #include class UserInputObserver : public IUserInputObserver, public yacppdic::AutoWirable { public: UserInputObserver() noexcept = default; void listen() noexcept override; auto get_currently_pressed_key() noexcept -> Key override; private: std::string _input_buffer; mutable std::mutex _input_buffer_mutex; auto _get_input_buffer() const noexcept -> std::string; void _set_input_buffer(const std::string &input_buffer) noexcept; };