**Use case**
Provide "Did you mean: ..." with nearest matches when user made a typo in Enum name or column name.

**Describe the solution you'd like**
See `NamePrompter.h`
#pragma once
#include <Common/HashTable/HashMap.h>
#include <unordered_map>
namespace DB
{
namespace ErrorCodes
{
    extern const int BAD_ARGUMENTS;
}
template <typename T>
class EnumValues
{
public:
    using Value = std::pair<std::string, T>;
    using Values = std::vector<Value>;
    using NameToValueMap = HashMap<StringRef, T, StringRefHash>;
    using ValueToNameMap = std::unordered_map<T, StringRef>;
private:
    Values values;
    NameToValueMap name_to_value_map;
    ValueToNameMap value_to_name_map;
    void fillMaps();
public:
    EnumValues(const Values & values_);
    const Values & getValues() const { return values; }