1343171Sdim//===- MsgPack.def - MessagePack definitions --------------------*- C++ -*-===//
2343171Sdim//
3353358Sdim// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4353358Sdim// See https://llvm.org/LICENSE.txt for license information.
5353358Sdim// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6343171Sdim//
7343171Sdim//===----------------------------------------------------------------------===//
8343171Sdim///
9343171Sdim/// \file
10343171Sdim/// Macros for running through MessagePack enumerators.
11343171Sdim///
12343171Sdim//===----------------------------------------------------------------------===//
13343171Sdim
14343171Sdim#if !(                                                                         \
15343171Sdim    defined HANDLE_MP_FIRST_BYTE || defined HANDLE_MP_FIX_BITS ||              \
16343171Sdim    defined HANDLE_MP_FIX_BITS_MASK || defined HANDLE_MP_FIX_MAX ||            \
17343171Sdim    defined HANDLE_MP_FIX_LEN || defined HANDLE_MP_FIX_MIN)
18343171Sdim#error "Missing macro definition of HANDLE_MP*"
19343171Sdim#endif
20343171Sdim
21343171Sdim#ifndef HANDLE_MP_FIRST_BYTE
22343171Sdim#define HANDLE_MP_FIRST_BYTE(ID, NAME)
23343171Sdim#endif
24343171Sdim
25343171Sdim#ifndef HANDLE_MP_FIX_BITS
26343171Sdim#define HANDLE_MP_FIX_BITS(ID, NAME)
27343171Sdim#endif
28343171Sdim
29343171Sdim#ifndef HANDLE_MP_FIX_BITS_MASK
30343171Sdim#define HANDLE_MP_FIX_BITS_MASK(ID, NAME)
31343171Sdim#endif
32343171Sdim
33343171Sdim#ifndef HANDLE_MP_FIX_MAX
34343171Sdim#define HANDLE_MP_FIX_MAX(ID, NAME)
35343171Sdim#endif
36343171Sdim
37343171Sdim#ifndef HANDLE_MP_FIX_LEN
38343171Sdim#define HANDLE_MP_FIX_LEN(ID, NAME)
39343171Sdim#endif
40343171Sdim
41343171Sdim#ifndef HANDLE_MP_FIX_MIN
42343171Sdim#define HANDLE_MP_FIX_MIN(ID, NAME)
43343171Sdim#endif
44343171Sdim
45343171SdimHANDLE_MP_FIRST_BYTE(0xc0, Nil)
46343171SdimHANDLE_MP_FIRST_BYTE(0xc2, False)
47343171SdimHANDLE_MP_FIRST_BYTE(0xc3, True)
48343171SdimHANDLE_MP_FIRST_BYTE(0xc4, Bin8)
49343171SdimHANDLE_MP_FIRST_BYTE(0xc5, Bin16)
50343171SdimHANDLE_MP_FIRST_BYTE(0xc6, Bin32)
51343171SdimHANDLE_MP_FIRST_BYTE(0xc7, Ext8)
52343171SdimHANDLE_MP_FIRST_BYTE(0xc8, Ext16)
53343171SdimHANDLE_MP_FIRST_BYTE(0xc9, Ext32)
54343171SdimHANDLE_MP_FIRST_BYTE(0xca, Float32)
55343171SdimHANDLE_MP_FIRST_BYTE(0xcb, Float64)
56343171SdimHANDLE_MP_FIRST_BYTE(0xcc, UInt8)
57343171SdimHANDLE_MP_FIRST_BYTE(0xcd, UInt16)
58343171SdimHANDLE_MP_FIRST_BYTE(0xce, UInt32)
59343171SdimHANDLE_MP_FIRST_BYTE(0xcf, UInt64)
60343171SdimHANDLE_MP_FIRST_BYTE(0xd0, Int8)
61343171SdimHANDLE_MP_FIRST_BYTE(0xd1, Int16)
62343171SdimHANDLE_MP_FIRST_BYTE(0xd2, Int32)
63343171SdimHANDLE_MP_FIRST_BYTE(0xd3, Int64)
64343171SdimHANDLE_MP_FIRST_BYTE(0xd4, FixExt1)
65343171SdimHANDLE_MP_FIRST_BYTE(0xd5, FixExt2)
66343171SdimHANDLE_MP_FIRST_BYTE(0xd6, FixExt4)
67343171SdimHANDLE_MP_FIRST_BYTE(0xd7, FixExt8)
68343171SdimHANDLE_MP_FIRST_BYTE(0xd8, FixExt16)
69343171SdimHANDLE_MP_FIRST_BYTE(0xd9, Str8)
70343171SdimHANDLE_MP_FIRST_BYTE(0xda, Str16)
71343171SdimHANDLE_MP_FIRST_BYTE(0xdb, Str32)
72343171SdimHANDLE_MP_FIRST_BYTE(0xdc, Array16)
73343171SdimHANDLE_MP_FIRST_BYTE(0xdd, Array32)
74343171SdimHANDLE_MP_FIRST_BYTE(0xde, Map16)
75343171SdimHANDLE_MP_FIRST_BYTE(0xdf, Map32)
76343171Sdim
77343171SdimHANDLE_MP_FIX_BITS(0x00, PositiveInt)
78343171SdimHANDLE_MP_FIX_BITS(0x80, Map)
79343171SdimHANDLE_MP_FIX_BITS(0x90, Array)
80343171SdimHANDLE_MP_FIX_BITS(0xa0, String)
81343171SdimHANDLE_MP_FIX_BITS(0xe0, NegativeInt)
82343171Sdim
83343171SdimHANDLE_MP_FIX_BITS_MASK(0x80, PositiveInt)
84343171SdimHANDLE_MP_FIX_BITS_MASK(0xf0, Map)
85343171SdimHANDLE_MP_FIX_BITS_MASK(0xf0, Array)
86343171SdimHANDLE_MP_FIX_BITS_MASK(0xe0, String)
87343171SdimHANDLE_MP_FIX_BITS_MASK(0xe0, NegativeInt)
88343171Sdim
89343171SdimHANDLE_MP_FIX_MAX(0x7f, PositiveInt)
90343171SdimHANDLE_MP_FIX_MAX(0x0f, Map)
91343171SdimHANDLE_MP_FIX_MAX(0x0f, Array)
92343171SdimHANDLE_MP_FIX_MAX(0x1f, String)
93343171Sdim
94343171SdimHANDLE_MP_FIX_LEN(0x01, Ext1)
95343171SdimHANDLE_MP_FIX_LEN(0x02, Ext2)
96343171SdimHANDLE_MP_FIX_LEN(0x04, Ext4)
97343171SdimHANDLE_MP_FIX_LEN(0x08, Ext8)
98343171SdimHANDLE_MP_FIX_LEN(0x10, Ext16)
99343171Sdim
100343171SdimHANDLE_MP_FIX_MIN(-0x20, NegativeInt)
101343171Sdim
102343171Sdim#undef HANDLE_MP_FIRST_BYTE
103343171Sdim#undef HANDLE_MP_FIX_BITS
104343171Sdim#undef HANDLE_MP_FIX_BITS_MASK
105343171Sdim#undef HANDLE_MP_FIX_MAX
106343171Sdim#undef HANDLE_MP_FIX_LEN
107343171Sdim#undef HANDLE_MP_FIX_MIN
108