summaryrefslogtreecommitdiff
path: root/src/string.h
blob: b8554ff708afd9df5fdd35fd078b2aebd81e4163 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#pragma once

#include "common.h"
#include "smrt_arena.h"

#define STRNG_BASE_POS (sizeof(strng_t))

typedef struct {
    u64 alloc_size;
    u64 len;
} strng_t;

strng_t  *strng_new(smrt_arena_t *arena, u64 size);
strng_t *strng_from(smrt_arena_t *arena, char *c);
    b32   strng_set(strng_t *string, char *c);
   void strng_clear(strng_t *string);

#define STRNG_FMT(s) (int)s->len, (char *)((u8*)s+STRNG_BASE_POS)