#include <stdint.h>
#include <derive-c/core.h>
#include <derive-c/panic.h>
#include <derive-c/self.h>
Go to the source code of this file.
◆ INPLACE_CAPACITY
#define INPLACE_CAPACITY 8 |
◆ INPLACE_TYPE
#define INPLACE_TYPE uint8_t |
#define T derive_c_parameter_t |
◆ T_DELETE
#define T_DELETE derive_c_parameter_t_delete |
◆ delete()
static void delete |
( |
SELF * | self | ) |
|
|
static |
Definition at line 128 of file template.h.
128 {
132 }
133}
#define DEBUG_ASSERT(expr)
◆ empty() [1/2]
static bool empty |
( |
ITER const * | iter | ) |
|
|
static |
Definition at line 158 of file template.h.
158 {
160 return iter->pos >= iter->vec->size;
161}
◆ empty() [2/2]
static bool empty |
( |
ITER_CONST const * | iter | ) |
|
|
static |
Definition at line 196 of file template.h.
196 {
198 return iter->pos >= iter->vec->size;
199}
◆ get_iter()
static ITER get_iter |
( |
SELF * | self | ) |
|
|
static |
Definition at line 163 of file template.h.
163 {
165 return (ITER){
166 .vec = self,
167 .pos = 0,
168 };
169}
◆ get_iter_const()
static ITER_CONST get_iter_const |
( |
SELF const * | self | ) |
|
|
static |
Definition at line 201 of file template.h.
201 {
203 return (ITER_CONST){
204 .vec = self,
205 .pos = 0,
206 };
207}
◆ new()
◆ next() [1/2]
static T * next |
( |
ITER * | iter | ) |
|
|
static |
Definition at line 142 of file template.h.
142 {
144 if (iter->pos < iter->vec->size) {
145 T* item = &iter->vec->data[iter->pos];
146 iter->pos++;
147 return item;
148 } else {
149 return NULL;
150 }
151}
◆ next() [2/2]
static T const * next |
( |
ITER_CONST * | iter | ) |
|
|
static |
Definition at line 180 of file template.h.
180 {
182 if (iter->pos < iter->vec->size) {
183 T const* item = &iter->vec->data[iter->pos];
184 iter->pos++;
185 return item;
186 } else {
187 return NULL;
188 }
189}
◆ pop()
static T pop |
( |
SELF * | self | ) |
|
|
static |
Definition at line 117 of file template.h.
117 {
120 return entry;
121}
static bool try_pop(SELF *self, T *destination)
◆ position() [1/2]
static size_t position |
( |
ITER const * | iter | ) |
|
|
static |
Definition at line 153 of file template.h.
153 {
155 return iter->pos;
156}
◆ position() [2/2]
static size_t position |
( |
ITER_CONST const * | iter | ) |
|
|
static |
Definition at line 191 of file template.h.
191 {
193 return iter->pos;
194}
◆ push()
static T * push |
( |
SELF * | self, |
|
|
T | value ) |
|
static |
Definition at line 100 of file template.h.
100 {
103 return slot;
104}
static T * try_push(SELF *self, T value)
◆ read()
Definition at line 67 of file template.h.
67 {
70 return value;
71}
static V const * try_read(SELF const *self, INDEX index)
◆ shallow_clone()
static SELF shallow_clone |
( |
SELF const * | self | ) |
|
|
static |
Definition at line 46 of file template.h.
46 {
48 new_self.
size = self->size;
49
50
51
53 new_self.
data[i] = self->data[i];
54 }
55 return new_self;
56}
◆ size()
static size_t size |
( |
SELF const * | self | ) |
|
|
static |
Definition at line 123 of file template.h.
123 {
125 return self->size;
126}
◆ try_pop()
static bool try_pop |
( |
SELF * | self, |
|
|
T * | destination ) |
|
static |
Definition at line 106 of file template.h.
106 {
110 *destination = self->
data[self->
size];
111 return true;
112 } else {
113 return false;
114 }
115}
◆ try_push()
static T * try_push |
( |
SELF * | self, |
|
|
T | value ) |
|
static |
Definition at line 88 of file template.h.
88 {
92 *slot = value;
94 return slot;
95 } else {
96 return NULL;
97 }
98}
◆ try_read()
Definition at line 58 of file template.h.
58 {
61 return &self->data[index];
62 } else {
63 return NULL;
64 }
65}
static INDEX_TYPE size(SELF const *self)
◆ try_write()
Definition at line 73 of file template.h.
73 {
76 return &self->
data[index];
77 } else {
78 return NULL;
79 }
80}
◆ write()
Definition at line 82 of file template.h.
82 {
85 return value;
86}
static V * try_write(SELF *self, INDEX index)