aboutsummaryrefslogtreecommitdiff
path: root/include/str.h
blob: 3ccd0728b58c3446be4790fa7ea1f25ef93b7f1c (plain) (blame)
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

#pragma once
#include <stddef.h>
#include <stdint.h>
#include <stdio.h>

#include "../include/memory.h"
#include "../include/types.h"

#define S(s)                                                                   \
    (Str) { s, lengthof(s) }
typedef struct {
    byte *data;
    size len;
} Str;
typedef struct {
    byte *data;
    size len;
} StrView;
i32 Str_equals(Str a, Str b);
u64 Str_hash64(Str s);
Str Str_copy(Arena *a, byte *data, size len);
i32 Str_fprint(FILE *w, Str s);

StrView Str_view(byte *data, size len);
i32 StrView_fprint(FILE *w, StrView s);