Lightweight 0.20251202.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 SQLITE,
19 MYSQL,
20};
21
22} // namespace Lightweight
23
24template <>
25struct std::formatter<Lightweight::SqlServerType>: std::formatter<std::string_view>
26{
27 using SqlServerType = Lightweight::SqlServerType;
28 auto format(SqlServerType type, format_context& ctx) const -> format_context::iterator
29 {
30 using namespace std::string_view_literals;
31 string_view name;
32 switch (type)
33 {
34 case SqlServerType::MICROSOFT_SQL:
35 name = "Microsoft SQL Server"sv;
36 break;
37 case SqlServerType::POSTGRESQL:
38 name = "PostgreSQL"sv;
39 break;
40 case SqlServerType::SQLITE:
41 name = "SQLite"sv;
42 break;
43 case SqlServerType::MYSQL:
44 name = "MySQL"sv;
45 break;
46 case SqlServerType::UNKNOWN:
47 name = "Unknown"sv;
48 break;
49 }
50 return std::formatter<string_view>::format(name, ctx);
51 }
52};