#pragma once #include #include // NOLINTNEXTLINE(cppcoreguidelines-special-member-functions) class IUserInputObserver { public: using Key = char; virtual ~IUserInputObserver() noexcept = default; virtual void listen() noexcept = 0; virtual auto is_key_pressed(Key key) noexcept -> bool = 0; [[nodiscard]] virtual auto get_currently_pressed_key() const noexcept -> Key = 0; virtual void clear_currently_pressed() noexcept = 0; };