From edf9d58909ec7ea1631f10e697c53999b3f1474a Mon Sep 17 00:00:00 2001 From: YuQing <384681@qq.com> Date: Tue, 7 Sep 2021 08:21:50 +0800 Subject: [PATCH] add function sf_serializer_pack_integer --- src/sf_serializer.h | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/sf_serializer.h b/src/sf_serializer.h index d5965c0..5298adb 100644 --- a/src/sf_serializer.h +++ b/src/sf_serializer.h @@ -195,6 +195,24 @@ static inline int sf_serializer_pack_int64(FastBuffer *buffer, return 0; } +static inline int sf_serializer_pack_integer(FastBuffer *buffer, + const unsigned char fid, const int64_t value) +{ + if (value >= INT16_MIN && value <= INT16_MAX) { + if (value >= INT8_MIN && value <= INT8_MAX) { + return sf_serializer_pack_int8(buffer, fid, value); + } else { + return sf_serializer_pack_int16(buffer, fid, value); + } + } else { + if (value >= INT32_MIN && value <= INT32_MAX) { + return sf_serializer_pack_int32(buffer, fid, value); + } else { + return sf_serializer_pack_int64(buffer, fid, value); + } + } +} + #define SF_SERIALIZER_PACK_STRING(ps, value) \ int2buff((value)->len, (ps)->len); \ memcpy((ps)->str, (value)->str, (value)->len)