123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- #ifndef MSGPACK_OBJECT_H
- #define MSGPACK_OBJECT_H
- #include "zone.h"
- #include <stdio.h>
- #ifdef __cplusplus
- extern "C" {
- #endif
- typedef enum {
- MSGPACK_OBJECT_NIL = 0x00,
- MSGPACK_OBJECT_BOOLEAN = 0x01,
- MSGPACK_OBJECT_POSITIVE_INTEGER = 0x02,
- MSGPACK_OBJECT_NEGATIVE_INTEGER = 0x03,
- MSGPACK_OBJECT_FLOAT32 = 0x0a,
- MSGPACK_OBJECT_FLOAT64 = 0x04,
- MSGPACK_OBJECT_FLOAT = 0x04,
- #if defined(MSGPACK_USE_LEGACY_NAME_AS_FLOAT)
- MSGPACK_OBJECT_DOUBLE = MSGPACK_OBJECT_FLOAT,
- #endif
- MSGPACK_OBJECT_STR = 0x05,
- MSGPACK_OBJECT_ARRAY = 0x06,
- MSGPACK_OBJECT_MAP = 0x07,
- MSGPACK_OBJECT_BIN = 0x08,
- MSGPACK_OBJECT_EXT = 0x09
- } msgpack_object_type;
- struct msgpack_object;
- struct msgpack_object_kv;
- typedef struct {
- uint32_t size;
- struct msgpack_object* ptr;
- } msgpack_object_array;
- typedef struct {
- uint32_t size;
- struct msgpack_object_kv* ptr;
- } msgpack_object_map;
- typedef struct {
- uint32_t size;
- const char* ptr;
- } msgpack_object_str;
- typedef struct {
- uint32_t size;
- const char* ptr;
- } msgpack_object_bin;
- typedef struct {
- int8_t type;
- uint32_t size;
- const char* ptr;
- } msgpack_object_ext;
- typedef union {
- bool boolean;
- uint64_t u64;
- int64_t i64;
- #if defined(MSGPACK_USE_LEGACY_NAME_AS_FLOAT)
- double dec;
- #endif
- double f64;
- msgpack_object_array array;
- msgpack_object_map map;
- msgpack_object_str str;
- msgpack_object_bin bin;
- msgpack_object_ext ext;
- } msgpack_object_union;
- typedef struct msgpack_object {
- msgpack_object_type type;
- msgpack_object_union via;
- } msgpack_object;
- typedef struct msgpack_object_kv {
- msgpack_object key;
- msgpack_object val;
- } msgpack_object_kv;
- MSGPACK_DLLEXPORT
- void msgpack_object_print(FILE* out, msgpack_object o);
- MSGPACK_DLLEXPORT
- int msgpack_object_print_buffer(char *buffer, size_t buffer_size, msgpack_object o);
- MSGPACK_DLLEXPORT
- bool msgpack_object_equal(const msgpack_object x, const msgpack_object y);
- #ifdef __cplusplus
- }
- #endif
- #endif
|