Lines Matching refs:self

137 static inline int data_node_hash_add(struct data_node *self, const char *id, struct data_node *payload)
139 if (self->type != DATA_HASH)
142 struct data_node_hash *hash = &self->hash;
155 static inline void data_node_free(struct data_node *self)
159 switch (self->type) {
164 for (i = 0; i < self->hash.elems_used; i++) {
165 data_node_free(self->hash.elems[i].node);
166 free(self->hash.elems[i].id);
170 for (i = 0; i < self->array.array_used; i++)
171 data_node_free(self->array.array[i]);
175 free(self);
178 static inline int data_node_hash_del(struct data_node *self, const char *id)
181 struct data_node_hash *hash = &self->hash;
199 static struct data_node *data_node_hash_get(struct data_node *self, const char *id)
202 struct data_node_hash *hash = &self->hash;
215 static inline int data_node_array_add(struct data_node *self, struct data_node *payload)
217 if (self->type != DATA_ARRAY)
220 struct data_node_array *array = &self->array;
230 static inline unsigned int data_node_array_len(struct data_node *self)
232 if (self->type != DATA_ARRAY)
235 return self->array.array_used;
244 static inline void data_node_print_(struct data_node *self, unsigned int padd)
248 switch (self->type) {
251 printf("%li\n", self->i.val);
255 printf("'%s'\n", self->string.val);
258 for (i = 0; i < self->hash.elems_used; i++) {
260 printf("%s = {\n", self->hash.elems[i].id);
261 data_node_print_(self->hash.elems[i].node, padd+1);
267 for (i = 0; i < self->array.array_used; i++) {
270 data_node_print_(self->array.array[i], padd+1);
278 static inline void data_node_print(struct data_node *self)
281 data_node_print_(self, 1);
334 static inline void data_to_json_(struct data_node *self, FILE *f, unsigned int padd, int do_padd)
338 switch (self->type) {
341 data_fprintf(f, padd, "%li", self->i.val);
345 data_fprintf_esc(f, padd, self->string.val);
348 for (i = 0; i < self->hash.elems_used; i++) {
349 data_fprintf(f, padd, "\"%s\": ", self->hash.elems[i].id);
350 data_to_json_(self->hash.elems[i].node, f, padd+1, 0);
351 if (i < self->hash.elems_used - 1)
359 for (i = 0; i < self->array.array_used; i++) {
360 data_to_json_(self->array.array[i], f, padd+1, 1);
361 if (i < self->array.array_used - 1)
371 static inline void data_to_json(struct data_node *self, FILE *f, unsigned int padd)
374 data_to_json_(self, f, padd + 1, 1);