1//===- MsgPack.def - MessagePack definitions --------------------*- C++ -*-===//
2//
3//                     The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9///
10/// \file
11/// Macros for running through MessagePack enumerators.
12///
13//===----------------------------------------------------------------------===//
14
15#if !(                                                                         \
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*"
20#endif
21
22#ifndef HANDLE_MP_FIRST_BYTE
23#define HANDLE_MP_FIRST_BYTE(ID, NAME)
24#endif
25
26#ifndef HANDLE_MP_FIX_BITS
27#define HANDLE_MP_FIX_BITS(ID, NAME)
28#endif
29
30#ifndef HANDLE_MP_FIX_BITS_MASK
31#define HANDLE_MP_FIX_BITS_MASK(ID, NAME)
32#endif
33
34#ifndef HANDLE_MP_FIX_MAX
35#define HANDLE_MP_FIX_MAX(ID, NAME)
36#endif
37
38#ifndef HANDLE_MP_FIX_LEN
39#define HANDLE_MP_FIX_LEN(ID, NAME)
40#endif
41
42#ifndef HANDLE_MP_FIX_MIN
43#define HANDLE_MP_FIX_MIN(ID, NAME)
44#endif
45
46HANDLE_MP_FIRST_BYTE(0xc0, Nil)
47HANDLE_MP_FIRST_BYTE(0xc2, False)
48HANDLE_MP_FIRST_BYTE(0xc3, True)
49HANDLE_MP_FIRST_BYTE(0xc4, Bin8)
50HANDLE_MP_FIRST_BYTE(0xc5, Bin16)
51HANDLE_MP_FIRST_BYTE(0xc6, Bin32)
52HANDLE_MP_FIRST_BYTE(0xc7, Ext8)
53HANDLE_MP_FIRST_BYTE(0xc8, Ext16)
54HANDLE_MP_FIRST_BYTE(0xc9, Ext32)
55HANDLE_MP_FIRST_BYTE(0xca, Float32)
56HANDLE_MP_FIRST_BYTE(0xcb, Float64)
57HANDLE_MP_FIRST_BYTE(0xcc, UInt8)
58HANDLE_MP_FIRST_BYTE(0xcd, UInt16)
59HANDLE_MP_FIRST_BYTE(0xce, UInt32)
60HANDLE_MP_FIRST_BYTE(0xcf, UInt64)
61HANDLE_MP_FIRST_BYTE(0xd0, Int8)
62HANDLE_MP_FIRST_BYTE(0xd1, Int16)
63HANDLE_MP_FIRST_BYTE(0xd2, Int32)
64HANDLE_MP_FIRST_BYTE(0xd3, Int64)
65HANDLE_MP_FIRST_BYTE(0xd4, FixExt1)
66HANDLE_MP_FIRST_BYTE(0xd5, FixExt2)
67HANDLE_MP_FIRST_BYTE(0xd6, FixExt4)
68HANDLE_MP_FIRST_BYTE(0xd7, FixExt8)
69HANDLE_MP_FIRST_BYTE(0xd8, FixExt16)
70HANDLE_MP_FIRST_BYTE(0xd9, Str8)
71HANDLE_MP_FIRST_BYTE(0xda, Str16)
72HANDLE_MP_FIRST_BYTE(0xdb, Str32)
73HANDLE_MP_FIRST_BYTE(0xdc, Array16)
74HANDLE_MP_FIRST_BYTE(0xdd, Array32)
75HANDLE_MP_FIRST_BYTE(0xde, Map16)
76HANDLE_MP_FIRST_BYTE(0xdf, Map32)
77
78HANDLE_MP_FIX_BITS(0x00, PositiveInt)
79HANDLE_MP_FIX_BITS(0x80, Map)
80HANDLE_MP_FIX_BITS(0x90, Array)
81HANDLE_MP_FIX_BITS(0xa0, String)
82HANDLE_MP_FIX_BITS(0xe0, NegativeInt)
83
84HANDLE_MP_FIX_BITS_MASK(0x80, PositiveInt)
85HANDLE_MP_FIX_BITS_MASK(0xf0, Map)
86HANDLE_MP_FIX_BITS_MASK(0xf0, Array)
87HANDLE_MP_FIX_BITS_MASK(0xe0, String)
88HANDLE_MP_FIX_BITS_MASK(0xe0, NegativeInt)
89
90HANDLE_MP_FIX_MAX(0x7f, PositiveInt)
91HANDLE_MP_FIX_MAX(0x0f, Map)
92HANDLE_MP_FIX_MAX(0x0f, Array)
93HANDLE_MP_FIX_MAX(0x1f, String)
94
95HANDLE_MP_FIX_LEN(0x01, Ext1)
96HANDLE_MP_FIX_LEN(0x02, Ext2)
97HANDLE_MP_FIX_LEN(0x04, Ext4)
98HANDLE_MP_FIX_LEN(0x08, Ext8)
99HANDLE_MP_FIX_LEN(0x10, Ext16)
100
101HANDLE_MP_FIX_MIN(-0x20, NegativeInt)
102
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
109