aboutsummaryrefslogtreecommitdiff
path: root/stdlib/pointers.h
diff options
context:
space:
mode:
Diffstat (limited to 'stdlib/pointers.h')
-rw-r--r--stdlib/pointers.h5
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*), \