aboutsummaryrefslogtreecommitdiff
path: root/src/stdlib/memory.c
blob: 2ae47c36fc4c0bb5152b6bc095f7b60d248fd081 (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
32
33
34
// Type info and methods for "Memory" opaque type

#include <err.h>
#include <gc.h>
#include <stdbool.h>
#include <stdint.h>
#include <sys/param.h>

#include "memory.h"
#include "metamethods.h"
#include "print.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,
        },
};