mirror of
https://github.com/msgpack/msgpack-c.git
synced 2025-10-23 00:08:01 +02:00
Add EXT support to C library
This commit is contained in:
@@ -68,6 +68,13 @@ int msgpack_pack_object(msgpack_packer* pk, msgpack_object d)
|
||||
return msgpack_pack_bin_body(pk, d.via.bin.ptr, d.via.bin.size);
|
||||
}
|
||||
|
||||
case MSGPACK_OBJECT_EXT:
|
||||
{
|
||||
int ret = msgpack_pack_ext(pk, d.via.ext.size, d.via.ext.type);
|
||||
if(ret < 0) { return ret; }
|
||||
return msgpack_pack_ext_body(pk, d.via.ext.ptr, d.via.ext.size);
|
||||
}
|
||||
|
||||
case MSGPACK_OBJECT_ARRAY:
|
||||
{
|
||||
int ret = msgpack_pack_array(pk, d.via.array.size);
|
||||
@@ -141,6 +148,13 @@ void msgpack_object_print(FILE* out, msgpack_object o)
|
||||
fprintf(out, "\"");
|
||||
break;
|
||||
|
||||
case MSGPACK_OBJECT_EXT:
|
||||
fprintf(out, "(ext: %" PRIi8 ")", o.via.ext.type);
|
||||
fprintf(out, "\"");
|
||||
fwrite(o.via.ext.ptr, o.via.ext.size, 1, out);
|
||||
fprintf(out, "\"");
|
||||
break;
|
||||
|
||||
case MSGPACK_OBJECT_ARRAY:
|
||||
fprintf(out, "[");
|
||||
if(o.via.array.size != 0) {
|
||||
@@ -209,6 +223,11 @@ bool msgpack_object_equal(const msgpack_object x, const msgpack_object y)
|
||||
return x.via.bin.size == y.via.bin.size &&
|
||||
memcmp(x.via.bin.ptr, y.via.bin.ptr, x.via.bin.size) == 0;
|
||||
|
||||
case MSGPACK_OBJECT_EXT:
|
||||
return x.via.ext.size == y.via.ext.size &&
|
||||
x.via.ext.type == y.via.ext.type &&
|
||||
memcmp(x.via.ext.ptr, y.via.ext.ptr, x.via.ext.size) == 0;
|
||||
|
||||
case MSGPACK_OBJECT_ARRAY:
|
||||
if(x.via.array.size != y.via.array.size) {
|
||||
return false;
|
||||
|
Reference in New Issue
Block a user