diff --git a/geocoder/types.cpp b/geocoder/types.cpp new file mode 100644 index 0000000000..5c5733b49e --- /dev/null +++ b/geocoder/types.cpp @@ -0,0 +1,29 @@ +#include "geocoder/types.hpp" + +#include "base/assert.hpp" + +using namespace std; + +namespace geocoder +{ +string ToString(Type type) +{ + switch (type) + { + case Type::Country: return "country"; break; + case Type::Region: return "region"; break; + case Type::Subregion: return "subregion"; break; + case Type::Locality: return "locality"; break; + case Type::Sublocality: return "sublocality"; break; + case Type::Suburb: return "suburb"; break; + case Type::Building: return "building"; break; + case Type::Count: return "count"; break; + } + CHECK_SWITCH(); +} + +string DebugPrint(Type type) +{ + return ToString(type); +} +} // namespace geocoder diff --git a/geocoder/types.hpp b/geocoder/types.hpp new file mode 100644 index 0000000000..2d899c7a99 --- /dev/null +++ b/geocoder/types.hpp @@ -0,0 +1,29 @@ +#pragma once + +#include "base/string_utils.hpp" + +#include +#include + +namespace geocoder +{ +using Tokens = std::vector; + +enum class Type +{ + // It is important that the types are ordered from + // the more general to the more specific. + Country, + Region, + Subregion, + Locality, + Sublocality, + Suburb, + Building, + + Count +}; + +std::string ToString(Type type); +std::string DebugPrint(Type type); +} // namespace geocoder