From dfa850ebb5d1e44df7f9bc793cc052d4284fc0a5 Mon Sep 17 00:00:00 2001 From: Tomasz Kramkowski Date: Sun, 8 Aug 2021 04:24:01 +0100 Subject: implement unpack_struct --- pack.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'pack.h') diff --git a/pack.h b/pack.h index 7fd54a5..d43bdcf 100644 --- a/pack.h +++ b/pack.h @@ -42,8 +42,21 @@ enum pack_endian { PACK_ENDIAN_LITTLE }; +struct pack_field { + enum pack_type type; + size_t count; + size_t offset; +}; + +struct pack_args { + enum pack_endian endian; + struct pack_field *fields; + size_t num_fields; +}; + enum pack_status pack(void *dest, size_t size, const char *fmt, ...); enum pack_status unpack(const void *buf, size_t size, const char *fmt, ...); +enum pack_status unpack_struct(const void *buf, size_t size, const struct pack_args *args, void *dest); const char *pack_strerror(enum pack_status status); -- cgit v1.2.3-54-g00ecf