1// Copyright (C) 2023 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
3
4#ifndef COMPARISONCATEGORY_H
5#define COMPARISONCATEGORY_H
6
7#include <string>
8
9QT_BEGIN_NAMESPACE
10
11enum struct ComparisonCategory : unsigned char {
12 None,
13 Strong,
14 Weak,
15 Partial,
16 Equality
17};
18
19static inline std::string comparisonCategoryAsString(ComparisonCategory category)
20{
21 switch (category) {
22 case ComparisonCategory::Strong:
23 return "strong";
24 case ComparisonCategory::Weak:
25 return "weak";
26 case ComparisonCategory::Partial:
27 return "partial";
28 case ComparisonCategory::Equality:
29 return "equality";
30 case ComparisonCategory::None:
31 [[fallthrough]];
32 default:
33 break;
34 }
35 return {};
36}
37
38static inline ComparisonCategory comparisonCategoryFromString(const std::string &string)
39{
40 if (string == "strong")
41 return ComparisonCategory::Strong;
42 if (string == "weak")
43 return ComparisonCategory::Weak;
44 if (string == "partial")
45 return ComparisonCategory::Partial;
46 if (string == "equality")
47 return ComparisonCategory::Equality;
48
49 return ComparisonCategory::None;
50}
51
52QT_END_NAMESPACE
53
54#endif // COMPARISONCATEGORY_H
55

source code of qttools/src/qdoc/qdoc/src/qdoc/comparisoncategory.h