conv.h (2246B)
1 #ifndef MPACK_CONV_H 2 #define MPACK_CONV_H 3 4 #include "mpack_core.h" 5 6 #if ULLONG_MAX == 0xffffffffffffffff 7 typedef long long mpack_sintmax_t; 8 typedef unsigned long long mpack_uintmax_t; 9 #elif UINT64_MAX == 0xffffffffffffffff 10 typedef int64_t mpack_sintmax_t; 11 typedef uint64_t mpack_uintmax_t; 12 #else 13 typedef mpack_sint32_t mpack_sintmax_t; 14 typedef mpack_uint32_t mpack_uintmax_t; 15 #endif 16 17 MPACK_API mpack_token_t mpack_pack_nil(void) FUNUSED FPURE; 18 MPACK_API mpack_token_t mpack_pack_boolean(unsigned v) FUNUSED FPURE; 19 MPACK_API mpack_token_t mpack_pack_uint(mpack_uintmax_t v) FUNUSED FPURE; 20 MPACK_API mpack_token_t mpack_pack_sint(mpack_sintmax_t v) FUNUSED FPURE; 21 MPACK_API mpack_token_t mpack_pack_float_compat(double v) FUNUSED FPURE; 22 MPACK_API mpack_token_t mpack_pack_float_fast(double v) FUNUSED FPURE; 23 MPACK_API mpack_token_t mpack_pack_number(double v) FUNUSED FPURE; 24 MPACK_API mpack_token_t mpack_pack_chunk(const char *p, mpack_uint32_t l) 25 FUNUSED FPURE FNONULL; 26 MPACK_API mpack_token_t mpack_pack_str(mpack_uint32_t l) FUNUSED FPURE; 27 MPACK_API mpack_token_t mpack_pack_bin(mpack_uint32_t l) FUNUSED FPURE; 28 MPACK_API mpack_token_t mpack_pack_ext(int type, mpack_uint32_t l) 29 FUNUSED FPURE; 30 MPACK_API mpack_token_t mpack_pack_array(mpack_uint32_t l) FUNUSED FPURE; 31 MPACK_API mpack_token_t mpack_pack_map(mpack_uint32_t l) FUNUSED FPURE; 32 MPACK_API bool mpack_unpack_boolean(mpack_token_t t) FUNUSED FPURE; 33 MPACK_API mpack_uintmax_t mpack_unpack_uint(mpack_token_t t) FUNUSED FPURE; 34 MPACK_API mpack_sintmax_t mpack_unpack_sint(mpack_token_t t) FUNUSED FPURE; 35 MPACK_API double mpack_unpack_float_fast(mpack_token_t t) FUNUSED FPURE; 36 MPACK_API double mpack_unpack_float_compat(mpack_token_t t) FUNUSED FPURE; 37 MPACK_API double mpack_unpack_number(mpack_token_t t) FUNUSED FPURE; 38 39 /* The mpack_{pack,unpack}_float_fast functions should work in 99% of the 40 * platforms. When compiling for a platform where floats don't use ieee754 as 41 * the internal format, pass 42 * -Dmpack_{pack,unpack}_float=mpack_{pack,unpack}_float_compat to the 43 * compiler.*/ 44 #ifndef mpack_pack_float 45 # define mpack_pack_float mpack_pack_float_fast 46 #endif 47 #ifndef mpack_unpack_float 48 # define mpack_unpack_float mpack_unpack_float_fast 49 #endif 50 51 #endif /* MPACK_CONV_H */