Mercurial > repo
view src/ploki/list.h @ 8203:b0fcb29e2ce7
<b_jonas> learn Silent initial consonants in English are: write, wrong, wrist, wrap, wreck, wrest, wrestle, wriggle, wrinkle, wrath, wraith, wreath, wrangle, wren, wright, wrought, wring, writ, writhe, wry; know, knife, knock, knee, knight, knob, knot, knit, knack, knout, knuckle; psychology, psalm, pseudo, psychic, psionics; gnaw, gnash, gnome, gnu, gnat; pneumatic; mnemonic; chthonic; phthisis; bdellium.
author | HackBot |
---|---|
date | Sun, 29 May 2016 20:52:46 +0000 |
parents | ac0403686959 |
children |
line wrap: on
line source
#ifndef LIST_H_ #define LIST_H_ #include "config.h" #include <stddef.h> struct li_whale { struct val **field; size_t length, size; size_t refs; }; struct list { struct li_whale *lwp; size_t offset, length; }; struct list *li_new(void); struct list *li_dup(const struct list *); void li_decouple(struct list *); void li_delete(struct list *); ATTR_PURE size_t li_length(const struct list *); ATTR_PURE struct val *li_at(const struct list *, size_t); ATTR_PURE int li_cmp(const struct list *, const struct list *); void li_zero(struct list *); void li_push(struct list *, struct val *); void li_push_cpy(struct list *, const struct val *); void li_append(struct list *, const struct list *); void li_reverse(struct list *); void li_trunc(struct list *, size_t); void li_shift(struct list *, size_t); #define li_length(l) ((l)->length + 0) #define li_zero(l) ((void)(l->offset = l->length = 0)) #endif /* LIST_H_ */