blob: 64a3162dc38c71fb4dd4e21ddcd871382d4a3849 (
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
#ifndef BASE_STRING_H
#define BASE_STRING_H
#include <string.h>
#define StringLit(string) \
(string8){ .data = (u8 *)(string), .size = (sizeof(string) - 1) }
#define PushString(arena, size) \
(string8){ (u8 *)PushArray((arena), u8, (size)), (u64)(size) }
#define StringFmt "%.*s"
#define ULongFmt "%lu"
#define ULLongFmt "%llu"
typedef struct string8 string8;
struct string8
{
u8 *data;
u64 size;
};
internal b8
string8_cmp(string8 a, string8 b)
{
if (a.size != b.size) return 0;
return (b8)(memcmp(a.data, b.data, a.size) == 0);
}
internal u64
string8_to_u64(u8 *buf, umm len)
{
u64 value = 0;
for (umm i = 0; i < len; ++i)
{
u8 c = buf[i];
if (c < '0' || c > '9') break;
value = value * 10 + (c - '0');
}
return value;
}
internal void
string8_append_char(string8 *buf, u8 c)
{
buf->data[buf->size] = c;
buf->size += 1;
}
#endif /* BASE_STRING_H */
|