summaryrefslogtreecommitdiff
path: root/testing/hstox/util.c
diff options
context:
space:
mode:
Diffstat (limited to 'testing/hstox/util.c')
-rw-r--r--testing/hstox/util.c74
1 files changed, 74 insertions, 0 deletions
diff --git a/testing/hstox/util.c b/testing/hstox/util.c
new file mode 100644
index 00000000..9461596c
--- /dev/null
+++ b/testing/hstox/util.c
@@ -0,0 +1,74 @@
1#include "util.h"
2
3#include <stdarg.h>
4
5char const *type_name(msgpack_object_type type)
6{
7 switch (type) {
8 case MSGPACK_OBJECT_NIL:
9 return "nil";
10
11 case MSGPACK_OBJECT_BOOLEAN:
12 return "boolean";
13
14 case MSGPACK_OBJECT_POSITIVE_INTEGER:
15 return "positive_integer";
16
17 case MSGPACK_OBJECT_NEGATIVE_INTEGER:
18 return "negative_integer";
19
20 case MSGPACK_OBJECT_FLOAT:
21 return "float";
22
23 case MSGPACK_OBJECT_STR:
24 return "str";
25
26 case MSGPACK_OBJECT_ARRAY:
27 return "array";
28
29 case MSGPACK_OBJECT_MAP:
30 return "map";
31
32 case MSGPACK_OBJECT_BIN:
33 return "bin";
34
35 case MSGPACK_OBJECT_EXT:
36 return "ext";
37 }
38
39 return "<unknown type>";
40}
41
42int msgpack_pack_string(msgpack_packer *pk, char const *str)
43{
44 size_t len = strlen(str);
45 msgpack_pack_str(pk, len);
46 return msgpack_pack_str_body(pk, str, len);
47}
48
49int msgpack_pack_vstringf(msgpack_packer *pk, char const *fmt, va_list ap)
50{
51 char buf[1024];
52 vsnprintf(buf, sizeof buf, fmt, ap);
53 return msgpack_pack_string(pk, buf);
54}
55
56int msgpack_pack_stringf(msgpack_packer *pk, char const *fmt, ...)
57{
58 va_list ap;
59 va_start(ap, fmt);
60 int res = msgpack_pack_vstringf(pk, fmt, ap);
61 va_end(ap);
62 return res;
63}
64
65char const *ssprintf(char const *fmt, ...)
66{
67 static char buf[1024];
68
69 va_list ap;
70 va_start(ap, fmt);
71 vsnprintf(buf, sizeof buf, fmt, ap);
72 va_end(ap);
73 return buf;
74}