GCC Code Coverage Report
Directory: ./ Exec Total Coverage
File: src/zserio/TypeInfoUtil.cpp Lines: 48 48 100.0 %
Date: 2023-12-13 14:51:09 Branches: 24 24 100.0 %

Line Branch Exec Source
1
#include "zserio/TypeInfoUtil.h"
2
3
namespace zserio
4
{
5
6
3113
bool TypeInfoUtil::isCompound(SchemaType schemaType)
7
{
8
3113
    switch (schemaType)
9
    {
10
    case SchemaType::STRUCT:
11
    case SchemaType::CHOICE:
12
    case SchemaType::UNION:
13
617
        return true;
14
    default:
15
2496
        return false;
16
    }
17
}
18
19
64
bool TypeInfoUtil::isCompound(CppType cppType)
20
{
21
64
    switch (cppType)
22
    {
23
    case CppType::STRUCT:
24
    case CppType::CHOICE:
25
    case CppType::UNION:
26
43
        return true;
27
    default:
28
21
        return false;
29
    }
30
}
31
32
127
bool TypeInfoUtil::hasChoice(SchemaType schemaType)
33
{
34
127
    switch (schemaType)
35
    {
36
    case SchemaType::CHOICE:
37
    case SchemaType::UNION:
38
39
        return true;
39
    default:
40
88
        return false;
41
    }
42
}
43
44
58
bool TypeInfoUtil::hasChoice(CppType cppType)
45
{
46
58
    switch (cppType)
47
    {
48
    case CppType::CHOICE:
49
    case CppType::UNION:
50
2
        return true;
51
    default:
52
56
        return false;
53
    }
54
}
55
56
36
bool TypeInfoUtil::isFixedSize(SchemaType schemaType)
57
{
58
36
    switch (schemaType)
59
    {
60
    case SchemaType::BOOL:
61
    case SchemaType::INT8:
62
    case SchemaType::INT16:
63
    case SchemaType::INT32:
64
    case SchemaType::INT64:
65
    case SchemaType::UINT8:
66
    case SchemaType::UINT16:
67
    case SchemaType::UINT32:
68
    case SchemaType::UINT64:
69
    case SchemaType::FIXED_SIGNED_BITFIELD:
70
    case SchemaType::FIXED_UNSIGNED_BITFIELD:
71
    case SchemaType::FLOAT16:
72
    case SchemaType::FLOAT32:
73
    case SchemaType::FLOAT64:
74
14
        return true;
75
    default:
76
22
        return false;
77
    }
78
}
79
80
22
bool TypeInfoUtil::isFixedSize(CppType cppType)
81
{
82
22
    switch (cppType)
83
    {
84
    case CppType::BOOL:
85
    case CppType::INT8:
86
    case CppType::INT16:
87
    case CppType::INT32:
88
    case CppType::INT64:
89
    case CppType::UINT8:
90
    case CppType::UINT16:
91
    case CppType::UINT32:
92
    case CppType::UINT64:
93
    case CppType::FLOAT:
94
    case CppType::DOUBLE:
95
11
        return true;
96
    default:
97
11
        return false;
98
    }
99
}
100
101
36
bool TypeInfoUtil::isIntegral(SchemaType schemaType)
102
{
103
36
    switch (schemaType)
104
    {
105
    case SchemaType::BOOL:
106
    case SchemaType::INT8:
107
    case SchemaType::INT16:
108
    case SchemaType::INT32:
109
    case SchemaType::INT64:
110
    case SchemaType::UINT8:
111
    case SchemaType::UINT16:
112
    case SchemaType::UINT32:
113
    case SchemaType::UINT64:
114
    case SchemaType::VARINT16:
115
    case SchemaType::VARINT32:
116
    case SchemaType::VARINT64:
117
    case SchemaType::VARINT:
118
    case SchemaType::VARUINT16:
119
    case SchemaType::VARUINT32:
120
    case SchemaType::VARUINT64:
121
    case SchemaType::VARUINT:
122
    case SchemaType::VARSIZE:
123
    case SchemaType::FIXED_SIGNED_BITFIELD:
124
    case SchemaType::FIXED_UNSIGNED_BITFIELD:
125
    case SchemaType::DYNAMIC_SIGNED_BITFIELD:
126
    case SchemaType::DYNAMIC_UNSIGNED_BITFIELD:
127
22
        return true;
128
    default:
129
14
        return false;
130
    }
131
}
132
133
22
bool TypeInfoUtil::isIntegral(CppType cppType)
134
{
135
22
    switch (cppType)
136
    {
137
    case CppType::BOOL:
138
    case CppType::INT8:
139
    case CppType::INT16:
140
    case CppType::INT32:
141
    case CppType::INT64:
142
    case CppType::UINT8:
143
    case CppType::UINT16:
144
    case CppType::UINT32:
145
    case CppType::UINT64:
146
9
        return true;
147
    default:
148
13
        return false;
149
    }
150
}
151
152
36
bool TypeInfoUtil::isSigned(SchemaType schemaType)
153
{
154
36
    switch (schemaType)
155
    {
156
    case SchemaType::INT8:
157
    case SchemaType::INT16:
158
    case SchemaType::INT32:
159
    case SchemaType::INT64:
160
    case SchemaType::VARINT16:
161
    case SchemaType::VARINT32:
162
    case SchemaType::VARINT64:
163
    case SchemaType::VARINT:
164
    case SchemaType::FIXED_SIGNED_BITFIELD:
165
    case SchemaType::DYNAMIC_SIGNED_BITFIELD:
166
    case SchemaType::FLOAT16:
167
    case SchemaType::FLOAT32:
168
    case SchemaType::FLOAT64:
169
13
        return true;
170
    default:
171
23
        return false;
172
    }
173
}
174
175
43
bool TypeInfoUtil::isSigned(CppType cppType)
176
{
177
43
    switch (cppType)
178
    {
179
    case CppType::INT8:
180
    case CppType::INT16:
181
    case CppType::INT32:
182
    case CppType::INT64:
183
    case CppType::FLOAT:
184
    case CppType::DOUBLE:
185
19
        return true;
186
    default:
187
24
        return false;
188
    }
189
}
190
191
36
bool TypeInfoUtil::isFloatingPoint(SchemaType schemaType)
192
{
193
36
    switch (schemaType)
194
    {
195
    case SchemaType::FLOAT16:
196
    case SchemaType::FLOAT32:
197
    case SchemaType::FLOAT64:
198
3
        return true;
199
    default:
200
33
        return false;
201
    }
202
}
203
204
22
bool TypeInfoUtil::isFloatingPoint(CppType cppType)
205
{
206
22
    switch (cppType)
207
    {
208
    case CppType::FLOAT:
209
    case CppType::DOUBLE:
210
2
        return true;
211
    default:
212
20
        return false;
213
    }
214
}
215
216
} // namespace zserio