aboutsummaryrefslogtreecommitdiff
path: root/src/stdlib/memory.c
blob: 83efc71fc712f4ea0e354eee78d139bba63bcec0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
// Type info and methods for "Memory" opaque type
#include <gc.h>
#include <stdbool.h>
#include <stdint.h>
#include <sys/param.h>
#include <err.h>

#include "memory.h"
#include "metamethods.h"
#include "text.h"
#include "types.h"
#include "util.h"

public Text_t Memory$as_text(const void *p, bool colorize, const TypeInfo_t *info) {
    (void)info;
    if (!p) return Text("Memory");
    Text_t text = Text$from_str(String("Memory<", *(void**)p, ">"));
    return colorize ? Texts(Text("\x1b[0;34;1m"), text, Text("\x1b[m")) : text;
}

public const TypeInfo_t Memory$info = {
    .size=0,
    .align=0,
    .metamethods={
        .as_text=Memory$as_text,
        .serialize=cannot_serialize,
        .deserialize=cannot_deserialize,
    },
};

// vim: ts=4 sw=0 et cino=L2,l1,(0,W4,m1,\:0