Zserio C++17 runtime library  0.5.0
Built for Zserio 2.17.0
TypeInfoUtil.cpp
Go to the documentation of this file.
1 #include "zserio/TypeInfoUtil.h"
2 
3 namespace zserio
4 {
5 
7 {
8  switch (schemaType)
9  {
10  case SchemaType::STRUCT:
11  case SchemaType::CHOICE:
12  case SchemaType::UNION:
13  return true;
14  default:
15  return false;
16  }
17 }
18 
20 {
21  switch (cppType)
22  {
23  case CppType::STRUCT:
24  case CppType::CHOICE:
25  case CppType::UNION:
26  return true;
27  default:
28  return false;
29  }
30 }
31 
33 {
34  switch (schemaType)
35  {
36  case SchemaType::CHOICE:
37  case SchemaType::UNION:
38  return true;
39  default:
40  return false;
41  }
42 }
43 
45 {
46  switch (cppType)
47  {
48  case CppType::CHOICE:
49  case CppType::UNION:
50  return true;
51  default:
52  return false;
53  }
54 }
55 
57 {
58  switch (schemaType)
59  {
60  case SchemaType::BOOL:
61  case SchemaType::INT1:
62  case SchemaType::INT2:
63  case SchemaType::INT3:
64  case SchemaType::INT4:
65  case SchemaType::INT5:
66  case SchemaType::INT6:
67  case SchemaType::INT7:
68  case SchemaType::INT8:
69  case SchemaType::INT9:
70  case SchemaType::INT10:
71  case SchemaType::INT11:
72  case SchemaType::INT12:
73  case SchemaType::INT13:
74  case SchemaType::INT14:
75  case SchemaType::INT15:
76  case SchemaType::INT16:
77  case SchemaType::INT17:
78  case SchemaType::INT18:
79  case SchemaType::INT19:
80  case SchemaType::INT20:
81  case SchemaType::INT21:
82  case SchemaType::INT22:
83  case SchemaType::INT23:
84  case SchemaType::INT24:
85  case SchemaType::INT25:
86  case SchemaType::INT26:
87  case SchemaType::INT27:
88  case SchemaType::INT28:
89  case SchemaType::INT29:
90  case SchemaType::INT30:
91  case SchemaType::INT31:
92  case SchemaType::INT32:
93  case SchemaType::INT33:
94  case SchemaType::INT34:
95  case SchemaType::INT35:
96  case SchemaType::INT36:
97  case SchemaType::INT37:
98  case SchemaType::INT38:
99  case SchemaType::INT39:
100  case SchemaType::INT40:
101  case SchemaType::INT41:
102  case SchemaType::INT42:
103  case SchemaType::INT43:
104  case SchemaType::INT44:
105  case SchemaType::INT45:
106  case SchemaType::INT46:
107  case SchemaType::INT47:
108  case SchemaType::INT48:
109  case SchemaType::INT49:
110  case SchemaType::INT50:
111  case SchemaType::INT51:
112  case SchemaType::INT52:
113  case SchemaType::INT53:
114  case SchemaType::INT54:
115  case SchemaType::INT55:
116  case SchemaType::INT56:
117  case SchemaType::INT57:
118  case SchemaType::INT58:
119  case SchemaType::INT59:
120  case SchemaType::INT60:
121  case SchemaType::INT61:
122  case SchemaType::INT62:
123  case SchemaType::INT63:
124  case SchemaType::INT64:
125  case SchemaType::UINT1:
126  case SchemaType::UINT2:
127  case SchemaType::UINT3:
128  case SchemaType::UINT4:
129  case SchemaType::UINT5:
130  case SchemaType::UINT6:
131  case SchemaType::UINT7:
132  case SchemaType::UINT8:
133  case SchemaType::UINT9:
134  case SchemaType::UINT10:
135  case SchemaType::UINT11:
136  case SchemaType::UINT12:
137  case SchemaType::UINT13:
138  case SchemaType::UINT14:
139  case SchemaType::UINT15:
140  case SchemaType::UINT16:
141  case SchemaType::UINT17:
142  case SchemaType::UINT18:
143  case SchemaType::UINT19:
144  case SchemaType::UINT20:
145  case SchemaType::UINT21:
146  case SchemaType::UINT22:
147  case SchemaType::UINT23:
148  case SchemaType::UINT24:
149  case SchemaType::UINT25:
150  case SchemaType::UINT26:
151  case SchemaType::UINT27:
152  case SchemaType::UINT28:
153  case SchemaType::UINT29:
154  case SchemaType::UINT30:
155  case SchemaType::UINT31:
156  case SchemaType::UINT32:
157  case SchemaType::UINT33:
158  case SchemaType::UINT34:
159  case SchemaType::UINT35:
160  case SchemaType::UINT36:
161  case SchemaType::UINT37:
162  case SchemaType::UINT38:
163  case SchemaType::UINT39:
164  case SchemaType::UINT40:
165  case SchemaType::UINT41:
166  case SchemaType::UINT42:
167  case SchemaType::UINT43:
168  case SchemaType::UINT44:
169  case SchemaType::UINT45:
170  case SchemaType::UINT46:
171  case SchemaType::UINT47:
172  case SchemaType::UINT48:
173  case SchemaType::UINT49:
174  case SchemaType::UINT50:
175  case SchemaType::UINT51:
176  case SchemaType::UINT52:
177  case SchemaType::UINT53:
178  case SchemaType::UINT54:
179  case SchemaType::UINT55:
180  case SchemaType::UINT56:
181  case SchemaType::UINT57:
182  case SchemaType::UINT58:
183  case SchemaType::UINT59:
184  case SchemaType::UINT60:
185  case SchemaType::UINT61:
186  case SchemaType::UINT62:
187  case SchemaType::UINT63:
188  case SchemaType::UINT64:
189  case SchemaType::FLOAT16:
190  case SchemaType::FLOAT32:
191  case SchemaType::FLOAT64:
192  return true;
193  default:
194  return false;
195  }
196 }
197 
199 {
200  switch (cppType)
201  {
202  case CppType::BOOL:
203  case CppType::INT8:
204  case CppType::INT16:
205  case CppType::INT32:
206  case CppType::INT64:
207  case CppType::UINT8:
208  case CppType::UINT16:
209  case CppType::UINT32:
210  case CppType::UINT64:
211  case CppType::FLOAT:
212  case CppType::DOUBLE:
213  return true;
214  default:
215  return false;
216  }
217 }
218 
220 {
221  switch (schemaType)
222  {
223  case SchemaType::BOOL:
224  case SchemaType::INT1:
225  case SchemaType::INT2:
226  case SchemaType::INT3:
227  case SchemaType::INT4:
228  case SchemaType::INT5:
229  case SchemaType::INT6:
230  case SchemaType::INT7:
231  case SchemaType::INT8:
232  case SchemaType::INT9:
233  case SchemaType::INT10:
234  case SchemaType::INT11:
235  case SchemaType::INT12:
236  case SchemaType::INT13:
237  case SchemaType::INT14:
238  case SchemaType::INT15:
239  case SchemaType::INT16:
240  case SchemaType::INT17:
241  case SchemaType::INT18:
242  case SchemaType::INT19:
243  case SchemaType::INT20:
244  case SchemaType::INT21:
245  case SchemaType::INT22:
246  case SchemaType::INT23:
247  case SchemaType::INT24:
248  case SchemaType::INT25:
249  case SchemaType::INT26:
250  case SchemaType::INT27:
251  case SchemaType::INT28:
252  case SchemaType::INT29:
253  case SchemaType::INT30:
254  case SchemaType::INT31:
255  case SchemaType::INT32:
256  case SchemaType::INT33:
257  case SchemaType::INT34:
258  case SchemaType::INT35:
259  case SchemaType::INT36:
260  case SchemaType::INT37:
261  case SchemaType::INT38:
262  case SchemaType::INT39:
263  case SchemaType::INT40:
264  case SchemaType::INT41:
265  case SchemaType::INT42:
266  case SchemaType::INT43:
267  case SchemaType::INT44:
268  case SchemaType::INT45:
269  case SchemaType::INT46:
270  case SchemaType::INT47:
271  case SchemaType::INT48:
272  case SchemaType::INT49:
273  case SchemaType::INT50:
274  case SchemaType::INT51:
275  case SchemaType::INT52:
276  case SchemaType::INT53:
277  case SchemaType::INT54:
278  case SchemaType::INT55:
279  case SchemaType::INT56:
280  case SchemaType::INT57:
281  case SchemaType::INT58:
282  case SchemaType::INT59:
283  case SchemaType::INT60:
284  case SchemaType::INT61:
285  case SchemaType::INT62:
286  case SchemaType::INT63:
287  case SchemaType::INT64:
288  case SchemaType::UINT1:
289  case SchemaType::UINT2:
290  case SchemaType::UINT3:
291  case SchemaType::UINT4:
292  case SchemaType::UINT5:
293  case SchemaType::UINT6:
294  case SchemaType::UINT7:
295  case SchemaType::UINT8:
296  case SchemaType::UINT9:
297  case SchemaType::UINT10:
298  case SchemaType::UINT11:
299  case SchemaType::UINT12:
300  case SchemaType::UINT13:
301  case SchemaType::UINT14:
302  case SchemaType::UINT15:
303  case SchemaType::UINT16:
304  case SchemaType::UINT17:
305  case SchemaType::UINT18:
306  case SchemaType::UINT19:
307  case SchemaType::UINT20:
308  case SchemaType::UINT21:
309  case SchemaType::UINT22:
310  case SchemaType::UINT23:
311  case SchemaType::UINT24:
312  case SchemaType::UINT25:
313  case SchemaType::UINT26:
314  case SchemaType::UINT27:
315  case SchemaType::UINT28:
316  case SchemaType::UINT29:
317  case SchemaType::UINT30:
318  case SchemaType::UINT31:
319  case SchemaType::UINT32:
320  case SchemaType::UINT33:
321  case SchemaType::UINT34:
322  case SchemaType::UINT35:
323  case SchemaType::UINT36:
324  case SchemaType::UINT37:
325  case SchemaType::UINT38:
326  case SchemaType::UINT39:
327  case SchemaType::UINT40:
328  case SchemaType::UINT41:
329  case SchemaType::UINT42:
330  case SchemaType::UINT43:
331  case SchemaType::UINT44:
332  case SchemaType::UINT45:
333  case SchemaType::UINT46:
334  case SchemaType::UINT47:
335  case SchemaType::UINT48:
336  case SchemaType::UINT49:
337  case SchemaType::UINT50:
338  case SchemaType::UINT51:
339  case SchemaType::UINT52:
340  case SchemaType::UINT53:
341  case SchemaType::UINT54:
342  case SchemaType::UINT55:
343  case SchemaType::UINT56:
344  case SchemaType::UINT57:
345  case SchemaType::UINT58:
346  case SchemaType::UINT59:
347  case SchemaType::UINT60:
348  case SchemaType::UINT61:
349  case SchemaType::UINT62:
350  case SchemaType::UINT63:
351  case SchemaType::UINT64:
355  case SchemaType::VARINT:
359  case SchemaType::VARUINT:
360  case SchemaType::VARSIZE:
363  return true;
364  default:
365  return false;
366  }
367 }
368 
370 {
371  switch (cppType)
372  {
373  case CppType::BOOL:
374  case CppType::INT8:
375  case CppType::INT16:
376  case CppType::INT32:
377  case CppType::INT64:
378  case CppType::UINT8:
379  case CppType::UINT16:
380  case CppType::UINT32:
381  case CppType::UINT64:
382  return true;
383  default:
384  return false;
385  }
386 }
387 
389 {
390  switch (schemaType)
391  {
392  case SchemaType::INT1:
393  case SchemaType::INT2:
394  case SchemaType::INT3:
395  case SchemaType::INT4:
396  case SchemaType::INT5:
397  case SchemaType::INT6:
398  case SchemaType::INT7:
399  case SchemaType::INT8:
400  case SchemaType::INT9:
401  case SchemaType::INT10:
402  case SchemaType::INT11:
403  case SchemaType::INT12:
404  case SchemaType::INT13:
405  case SchemaType::INT14:
406  case SchemaType::INT15:
407  case SchemaType::INT16:
408  case SchemaType::INT17:
409  case SchemaType::INT18:
410  case SchemaType::INT19:
411  case SchemaType::INT20:
412  case SchemaType::INT21:
413  case SchemaType::INT22:
414  case SchemaType::INT23:
415  case SchemaType::INT24:
416  case SchemaType::INT25:
417  case SchemaType::INT26:
418  case SchemaType::INT27:
419  case SchemaType::INT28:
420  case SchemaType::INT29:
421  case SchemaType::INT30:
422  case SchemaType::INT31:
423  case SchemaType::INT32:
424  case SchemaType::INT33:
425  case SchemaType::INT34:
426  case SchemaType::INT35:
427  case SchemaType::INT36:
428  case SchemaType::INT37:
429  case SchemaType::INT38:
430  case SchemaType::INT39:
431  case SchemaType::INT40:
432  case SchemaType::INT41:
433  case SchemaType::INT42:
434  case SchemaType::INT43:
435  case SchemaType::INT44:
436  case SchemaType::INT45:
437  case SchemaType::INT46:
438  case SchemaType::INT47:
439  case SchemaType::INT48:
440  case SchemaType::INT49:
441  case SchemaType::INT50:
442  case SchemaType::INT51:
443  case SchemaType::INT52:
444  case SchemaType::INT53:
445  case SchemaType::INT54:
446  case SchemaType::INT55:
447  case SchemaType::INT56:
448  case SchemaType::INT57:
449  case SchemaType::INT58:
450  case SchemaType::INT59:
451  case SchemaType::INT60:
452  case SchemaType::INT61:
453  case SchemaType::INT62:
454  case SchemaType::INT63:
455  case SchemaType::INT64:
459  case SchemaType::VARINT:
461  case SchemaType::FLOAT16:
462  case SchemaType::FLOAT32:
463  case SchemaType::FLOAT64:
464  return true;
465  default:
466  return false;
467  }
468 }
469 
471 {
472  switch (cppType)
473  {
474  case CppType::INT8:
475  case CppType::INT16:
476  case CppType::INT32:
477  case CppType::INT64:
478  case CppType::FLOAT:
479  case CppType::DOUBLE:
480  return true;
481  default:
482  return false;
483  }
484 }
485 
487 {
488  switch (schemaType)
489  {
490  case SchemaType::FLOAT16:
491  case SchemaType::FLOAT32:
492  case SchemaType::FLOAT64:
493  return true;
494  default:
495  return false;
496  }
497 }
498 
500 {
501  switch (cppType)
502  {
503  case CppType::FLOAT:
504  case CppType::DOUBLE:
505  return true;
506  default:
507  return false;
508  }
509 }
510 
511 } // namespace zserio
SchemaType
Definition: ITypeInfo.h:45
static bool hasChoice(SchemaType schemaType)
static bool isIntegral(SchemaType schemaType)
static bool isCompound(SchemaType schemaType)
Definition: TypeInfoUtil.cpp:6
static bool isSigned(SchemaType schemaType)
static bool isFloatingPoint(SchemaType schemaType)
static bool isFixedSize(SchemaType schemaType)