#pragma once
#include <memory>
#include <map>
#include <string>

class Keyboard
{
public:
    using KeyCode = unsigned;

protected:
    std::map<KeyCode, std::string> mKeyMap;

public:
    Keyboard();

    virtual ~Keyboard() = default;

    static std::unique_ptr<Keyboard> Create();

    virtual std::string GetKeyString(KeyCode code)
    {
        return "";
    }
};

using KeyboardUPtr = std::unique_ptr<Keyboard>;
