MessagePack: отключить целочисленное сжатие
Я использую MessagePack for CLI
( https://github.com/msgpack/msgpack-cli) библиотеки и мне интересно, можно ли отключить целочисленное сжатие.
Например:
// The following collection
object[] { (Int32)10, (Int32)100, (Int32)1000 };
// will look like this after unpacking
MessagePackObject[] { (Byte)10, (Byte)100, (Int16)1000 }
Это заставляет меня явно конвертировать каждый элемент коллекции, чтобы привести его обратно к int[]
, что довольно много времени.
1 ответ
Используйте непосредственно типы фиксированного размера:
msgpack::sbuffer buffer;
msgpack::packer<msgpack::sbuffer> pk(&buffer);
msgpack::type::fix_uint32 code(0x00);
msgpack::type::fix_uint32 type(123);
pk.pack(code);
pk.pack(type);