1 //===- MsgPack.def - MessagePack definitions --------------------*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
11 /// Macros for running through MessagePack enumerators.
13 //===----------------------------------------------------------------------===//
16 defined HANDLE_MP_FIRST_BYTE || defined HANDLE_MP_FIX_BITS || \
17 defined HANDLE_MP_FIX_BITS_MASK || defined HANDLE_MP_FIX_MAX || \
18 defined HANDLE_MP_FIX_LEN || defined HANDLE_MP_FIX_MIN)
19 #error "Missing macro definition of HANDLE_MP*"
22 #ifndef HANDLE_MP_FIRST_BYTE
23 #define HANDLE_MP_FIRST_BYTE(ID, NAME)
26 #ifndef HANDLE_MP_FIX_BITS
27 #define HANDLE_MP_FIX_BITS(ID, NAME)
30 #ifndef HANDLE_MP_FIX_BITS_MASK
31 #define HANDLE_MP_FIX_BITS_MASK(ID, NAME)
34 #ifndef HANDLE_MP_FIX_MAX
35 #define HANDLE_MP_FIX_MAX(ID, NAME)
38 #ifndef HANDLE_MP_FIX_LEN
39 #define HANDLE_MP_FIX_LEN(ID, NAME)
42 #ifndef HANDLE_MP_FIX_MIN
43 #define HANDLE_MP_FIX_MIN(ID, NAME)
46 HANDLE_MP_FIRST_BYTE(0xc0, Nil)
47 HANDLE_MP_FIRST_BYTE(0xc2, False)
48 HANDLE_MP_FIRST_BYTE(0xc3, True)
49 HANDLE_MP_FIRST_BYTE(0xc4, Bin8)
50 HANDLE_MP_FIRST_BYTE(0xc5, Bin16)
51 HANDLE_MP_FIRST_BYTE(0xc6, Bin32)
52 HANDLE_MP_FIRST_BYTE(0xc7, Ext8)
53 HANDLE_MP_FIRST_BYTE(0xc8, Ext16)
54 HANDLE_MP_FIRST_BYTE(0xc9, Ext32)
55 HANDLE_MP_FIRST_BYTE(0xca, Float32)
56 HANDLE_MP_FIRST_BYTE(0xcb, Float64)
57 HANDLE_MP_FIRST_BYTE(0xcc, UInt8)
58 HANDLE_MP_FIRST_BYTE(0xcd, UInt16)
59 HANDLE_MP_FIRST_BYTE(0xce, UInt32)
60 HANDLE_MP_FIRST_BYTE(0xcf, UInt64)
61 HANDLE_MP_FIRST_BYTE(0xd0, Int8)
62 HANDLE_MP_FIRST_BYTE(0xd1, Int16)
63 HANDLE_MP_FIRST_BYTE(0xd2, Int32)
64 HANDLE_MP_FIRST_BYTE(0xd3, Int64)
65 HANDLE_MP_FIRST_BYTE(0xd4, FixExt1)
66 HANDLE_MP_FIRST_BYTE(0xd5, FixExt2)
67 HANDLE_MP_FIRST_BYTE(0xd6, FixExt4)
68 HANDLE_MP_FIRST_BYTE(0xd7, FixExt8)
69 HANDLE_MP_FIRST_BYTE(0xd8, FixExt16)
70 HANDLE_MP_FIRST_BYTE(0xd9, Str8)
71 HANDLE_MP_FIRST_BYTE(0xda, Str16)
72 HANDLE_MP_FIRST_BYTE(0xdb, Str32)
73 HANDLE_MP_FIRST_BYTE(0xdc, Array16)
74 HANDLE_MP_FIRST_BYTE(0xdd, Array32)
75 HANDLE_MP_FIRST_BYTE(0xde, Map16)
76 HANDLE_MP_FIRST_BYTE(0xdf, Map32)
78 HANDLE_MP_FIX_BITS(0x00, PositiveInt)
79 HANDLE_MP_FIX_BITS(0x80, Map)
80 HANDLE_MP_FIX_BITS(0x90, Array)
81 HANDLE_MP_FIX_BITS(0xa0, String)
82 HANDLE_MP_FIX_BITS(0xe0, NegativeInt)
84 HANDLE_MP_FIX_BITS_MASK(0x80, PositiveInt)
85 HANDLE_MP_FIX_BITS_MASK(0xf0, Map)
86 HANDLE_MP_FIX_BITS_MASK(0xf0, Array)
87 HANDLE_MP_FIX_BITS_MASK(0xe0, String)
88 HANDLE_MP_FIX_BITS_MASK(0xe0, NegativeInt)
90 HANDLE_MP_FIX_MAX(0x7f, PositiveInt)
91 HANDLE_MP_FIX_MAX(0x0f, Map)
92 HANDLE_MP_FIX_MAX(0x0f, Array)
93 HANDLE_MP_FIX_MAX(0x1f, String)
95 HANDLE_MP_FIX_LEN(0x01, Ext1)
96 HANDLE_MP_FIX_LEN(0x02, Ext2)
97 HANDLE_MP_FIX_LEN(0x04, Ext4)
98 HANDLE_MP_FIX_LEN(0x08, Ext8)
99 HANDLE_MP_FIX_LEN(0x10, Ext16)
101 HANDLE_MP_FIX_MIN(-0x20, NegativeInt)
103 #undef HANDLE_MP_FIRST_BYTE
104 #undef HANDLE_MP_FIX_BITS
105 #undef HANDLE_MP_FIX_BITS_MASK
106 #undef HANDLE_MP_FIX_MAX
107 #undef HANDLE_MP_FIX_LEN
108 #undef HANDLE_MP_FIX_MIN