blob: 4b2cabde68d887d034a798a714a645757fd3179e (
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
51
|
#ifndef KIT_STRING_REF_H
#define KIT_STRING_REF_H
#include "array_ref.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef KIT_AR_MUT(char) kit_string_mut_t;
typedef KIT_AR(char) kit_string_ref_t;
typedef kit_string_mut_t kit_out_str_t;
typedef kit_string_ref_t kit_str_t;
#ifdef __GNUC__
# pragma GCC diagnostic push
# pragma GCC diagnostic ignored "-Wunused-function"
# pragma GCC diagnostic ignored "-Wunknown-pragmas"
# pragma GCC push_options
# pragma GCC optimize("O3")
#endif
static kit_str_t kit_str(ptrdiff_t const size,
char const *const static_string) {
kit_str_t const s = { .size = size, .values = static_string };
return s;
}
#ifdef __GNUC__
# pragma GCC pop_options
# pragma GCC diagnostic pop
#endif
#define KIT_SZ(static_str_) \
kit_str(sizeof(static_str_) - 1, (static_str_))
#ifndef KIT_DISABLE_SHORT_NAMES
# define string_mut_t kit_string_mut_t
# define string_ref_t kit_string_ref_t
# define out_str_t kit_out_str_t
# define str_t kit_str_t
# define SZ KIT_SZ
#endif
#ifdef __cplusplus
}
#endif
#endif
|