16enum class SqlServerType : uint8_t
31[[nodiscard]]
constexpr SqlServerType ServerTypeFromServerName(std::string_view serverName)
noexcept
33 using namespace std::string_view_literals;
34 constexpr auto mappings = std::array {
35 std::pair {
"Microsoft SQL Server"sv, SqlServerType::MICROSOFT_SQL },
36 std::pair {
"PostgreSQL"sv, SqlServerType::POSTGRESQL },
37 std::pair {
"SQLite"sv, SqlServerType::SQLITE },
38 std::pair {
"MySQL"sv, SqlServerType::MYSQL },
40 for (
auto const& [name, type]: mappings)
41 if (serverName.contains(name))
43 return SqlServerType::UNKNOWN;
49struct std::formatter<Lightweight::SqlServerType>: std::formatter<std::string_view>
51 using SqlServerType = Lightweight::SqlServerType;
52 auto format(SqlServerType type, format_context& ctx)
const -> format_context::iterator
54 using namespace std::string_view_literals;
58 case SqlServerType::MICROSOFT_SQL:
59 name =
"Microsoft SQL Server"sv;
61 case SqlServerType::POSTGRESQL:
62 name =
"PostgreSQL"sv;
64 case SqlServerType::SQLITE:
67 case SqlServerType::MYSQL:
70 case SqlServerType::UNKNOWN:
74 return std::formatter<string_view>::format(name, ctx);