Lightweight 0.1.0
All Classes Functions Variables Typedefs Enumerations Modules Pages Concepts
SqlServerType.hpp
1// SPDX-License-Identifier: Apache-2.0
2
3#pragma once
4
5#include "Api.hpp"
6
7#include <cstdint>
8#include <format>
9
10enum class SqlServerType : uint8_t
11{
12 UNKNOWN,
13 MICROSOFT_SQL,
14 POSTGRESQL,
15 ORACLE,
16 SQLITE,
17 MYSQL,
18};
19
20template <>
21struct LIGHTWEIGHT_API std::formatter<SqlServerType>: std::formatter<std::string_view>
22{
23 auto format(SqlServerType type, format_context& ctx) const -> format_context::iterator
24 {
25 using namespace std::string_view_literals;
26 string_view name;
27 switch (type)
28 {
29 case SqlServerType::MICROSOFT_SQL:
30 name = "Microsoft SQL Server"sv;
31 break;
32 case SqlServerType::POSTGRESQL:
33 name = "PostgreSQL"sv;
34 break;
35 case SqlServerType::ORACLE:
36 name = "Oracle"sv;
37 break;
38 case SqlServerType::SQLITE:
39 name = "SQLite"sv;
40 break;
41 case SqlServerType::MYSQL:
42 name = "MySQL"sv;
43 break;
44 case SqlServerType::UNKNOWN:
45 name = "Unknown"sv;
46 break;
47 }
48 return std::formatter<string_view>::format(name, ctx);
49 }
50};