Mercurial > ~dholland > hg > ag > index.cgi
view help2html/uintarray.h @ 0:13d2b8934445
Import AnaGram (near-)release tree into Mercurial.
author | David A. Holland |
---|---|
date | Sat, 22 Dec 2007 17:52:45 -0500 |
parents | |
children | 60b08b68c750 |
line wrap: on
line source
#include <assert.h> /* treat as opaque */ struct uintarray { unsigned *v; unsigned num, max; }; struct uintarray *uintarray_create(void); void uintarray_init(struct uintarray *a); void uintarray_cleanup(struct uintarray *a); void uintarray_destroy(struct uintarray *a); unsigned uintarray_num(const struct uintarray *a); unsigned uintarray_get(const struct uintarray *a, unsigned ix); void uintarray_set(struct uintarray *a, unsigned ix, unsigned val); void uintarray_add(struct uintarray *a, unsigned val); void uintarray_setsize(struct uintarray *a, unsigned newsize); /* x and y are pointers that were placed in the uintarray */ void uintarray_sort(struct uintarray *a, int (*f)(unsigned x, unsigned y)); extern inline unsigned uintarray_num(const struct uintarray *a) { return a->num; } extern inline unsigned uintarray_get(const struct uintarray *a, unsigned ix) { assert(ix < a->num); return a->v[ix]; } extern inline void uintarray_set(struct uintarray *a, unsigned ix, unsigned val) { assert(ix < a->num); a->v[ix] = val; }