diff options
Diffstat (limited to 'imap.h')
-rw-r--r-- | imap.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/imap.h b/imap.h index f9b3106..a7b4b64 100644 --- a/imap.h +++ b/imap.h @@ -99,6 +99,17 @@ struct Data { }; }; +static inline struct Data dataCheck(struct Data data, enum Type type) { + const char *Types[] = { "atom", "number", "string", "list" }; + if (data.type != type) { + errx( + EX_PROTOCOL, "expected %s, found %s", + Types[type], Types[data.type] + ); + } + return data; +} + static inline void listPush(struct List *list, struct Data data) { if (list->len == list->cap) { list->cap = (list->cap ? list->cap * 2 : 4); |