2010-06-03 10:06:18 -04:00
|
|
|
#ifndef __INTSET_H
|
|
|
|
#define __INTSET_H
|
2010-06-11 13:22:27 -04:00
|
|
|
#include <stdint.h>
|
2010-06-03 10:06:18 -04:00
|
|
|
|
|
|
|
typedef struct intset {
|
|
|
|
uint32_t encoding;
|
|
|
|
uint32_t length;
|
|
|
|
int8_t contents[];
|
|
|
|
} intset;
|
|
|
|
|
|
|
|
intset *intsetNew(void);
|
|
|
|
intset *intsetAdd(intset *is, int64_t value, uint8_t *success);
|
2010-06-11 13:22:27 -04:00
|
|
|
intset *intsetRemove(intset *is, int64_t value, uint8_t *success);
|
2010-06-03 10:06:18 -04:00
|
|
|
uint8_t intsetFind(intset *is, int64_t value);
|
|
|
|
int64_t intsetRandom(intset *is);
|
2010-06-12 16:25:22 -04:00
|
|
|
uint8_t intsetGet(intset *is, uint32_t pos, int64_t *value);
|
|
|
|
uint32_t intsetLen(intset *is);
|
2010-06-03 10:06:18 -04:00
|
|
|
|
|
|
|
#endif // __INTSET_H
|