Mercurial > repo
comparison src/ploki/kork.h @ 4223:ac0403686959
<oerjan> rm -rf src/ploki; mv ploki src
author | HackBot |
---|---|
date | Fri, 20 Dec 2013 22:18:50 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
4222:b0f3e267bb1e | 4223:ac0403686959 |
---|---|
1 #ifndef KORK_H_ | |
2 #define KORK_H_ | |
3 | |
4 #include "config.h" | |
5 #include "IO.h" | |
6 #include "Str.h" | |
7 | |
8 #include <stddef.h> | |
9 | |
10 struct ko_dolphin { | |
11 String str; | |
12 size_t refs; | |
13 }; | |
14 | |
15 struct kork { | |
16 struct ko_dolphin *kdp; | |
17 size_t offset, length; | |
18 }; | |
19 | |
20 struct kork *ko_new(void); | |
21 struct kork *ko_dup(const struct kork *); | |
22 void ko_decouple(struct kork *); | |
23 void ko_delete(struct kork *); | |
24 | |
25 ATTR_PURE | |
26 size_t ko_length(const struct kork *); | |
27 ATTR_PURE | |
28 int ko_at(const struct kork *, size_t); | |
29 ATTR_PURE | |
30 int ko_lastchar(const struct kork *); | |
31 ATTR_PURE | |
32 int ko_cmp(const struct kork *, const struct kork *); | |
33 | |
34 void ko_zero(struct kork *); | |
35 | |
36 ATTR_PURE | |
37 const char *ko_ptr(const struct kork *); | |
38 const String *ko_str(struct kork *); | |
39 const char *ko_szp(struct kork *); | |
40 void ko_grep(struct kork *, int (*)(int)); | |
41 void ko_shift(struct kork *, size_t); | |
42 void ko_num(struct kork *k, double); | |
43 void ko_cpy_m(struct kork *, const void *, size_t); | |
44 void ko_cpy(struct kork *, const struct kork *); | |
45 void ko_cpy_s(struct kork *, const char *); | |
46 void ko_cpy_c(struct kork *, char); | |
47 void ko_cat_m(struct kork *, const void *, size_t); | |
48 void ko_cat(struct kork *, const struct kork *); | |
49 void ko_cat_c(struct kork *, char); | |
50 void ko_reverse(struct kork *); | |
51 size_t ko_getline(IO *, struct kork *); | |
52 size_t ko_read(IO *, struct kork *, size_t); | |
53 void ko_lower(struct kork *); | |
54 void ko_upper(struct kork *); | |
55 ATTR_PURE | |
56 size_t ko_chr(const struct kork *, int); | |
57 void ko_shiftws(struct kork *); | |
58 void ko_trunc(struct kork *, size_t); | |
59 | |
60 #define ko_length(k) ((k)->length + 0u) | |
61 #define ko_zero(k) ((void)((k)->length = 0u)) | |
62 | |
63 #endif /* KORK_H_ */ |