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);
Другие вопросы по тегам