Lightweight 0.20250904.0
Loading...
Searching...
No Matches
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
10namespace Lightweight
11{
12
13enum class SqlServerType : uint8_t
14{
15 UNKNOWN,
16 MICROSOFT_SQL,
17 POSTGRESQL,
18 ORACLE,
19 SQLITE,
20 MYSQL,
21};
22
23} // namespace Lightweight
24
25template <>
26struct std::formatter<Lightweight::SqlServerType>: std::formatter<std::string_view>
27{
28 using SqlServerType = Lightweight::SqlServerType;
29 auto format(SqlServerType type, format_context& ctx) const -> format_context::iterator
30 {
31 using namespace std::string_view_literals;
32 string_view name;
33 switch (type)
34 {
35 case SqlServerType::MICROSOFT_SQL:
36 name = "Microsoft SQL Server"sv;
37 break;
38 case SqlServerType::POSTGRESQL:
39 name = "PostgreSQL"sv;
40 break;
41 case SqlServerType::ORACLE:
42 name = "Oracle"sv;
43 break;
44 case SqlServerType::SQLITE:
45 name = "SQLite"sv;
46 break;
47 case SqlServerType::MYSQL:
48 name = "MySQL"sv;
49 break;
50 case SqlServerType::UNKNOWN:
51 name = "Unknown"sv;
52 break;
53 }
54 return std::formatter<string_view>::format(name, ctx);
55 }
56};