diff options
| author | Bruce Hill <bruce@bruce-hill.com> | 2024-11-29 18:09:12 -0500 |
|---|---|---|
| committer | Bruce Hill <bruce@bruce-hill.com> | 2024-11-29 18:09:12 -0500 |
| commit | f66f8ad7119207b99f00ea2ea389550ee65db5b3 (patch) | |
| tree | 5b5a7c887b311e3de2f2cb293b1228598c5b9eb1 /stdlib/pointers.h | |
| parent | 4b5e4cd1f21582f5e5fa682ab4e4bff252963468 (diff) | |
Add serialization and deserialization
Diffstat (limited to 'stdlib/pointers.h')
| -rw-r--r-- | stdlib/pointers.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/stdlib/pointers.h b/stdlib/pointers.h index 0c9f2ade..1cd76366 100644 --- a/stdlib/pointers.h +++ b/stdlib/pointers.h @@ -5,6 +5,7 @@ #include <stdbool.h> #include <stdint.h> +#include "datatypes.h" #include "types.h" #include "util.h" @@ -12,6 +13,8 @@ Text_t Pointer$as_text(const void *x, bool colorize, const TypeInfo_t *type); PUREFUNC int32_t Pointer$compare(const void *x, const void *y, const TypeInfo_t *type); PUREFUNC bool Pointer$equal(const void *x, const void *y, const TypeInfo_t *type); PUREFUNC bool Pointer$is_none(const void *x, const TypeInfo_t*); +void Pointer$serialize(const void *obj, FILE *out, Table_t *pointers, const TypeInfo_t *type); +void Pointer$deserialize(FILE *in, void *outval, Array_t *pointers, const TypeInfo_t *type); #define Null(t) (t*)NULL #define POINTER_TYPE(_sigil, _pointed) (&(TypeInfo_t){\ @@ -22,6 +25,8 @@ PUREFUNC bool Pointer$is_none(const void *x, const TypeInfo_t*); .compare=Pointer$compare, \ .equal=Pointer$equal, \ .is_none=Pointer$is_none, \ + .serialize=Pointer$serialize, \ + .deserialize=Pointer$deserialize, \ }) #define Pointer$info(sigil_expr, pointed_info) &((TypeInfo_t){.size=sizeof(void*), .align=__alignof__(void*), \ |
