aocc23

Advent of Code 2023
git clone git://www.tkruger.se/aocc23.git
Log | Files | Refs | README

set_u64p.h (588B)


      1 #ifndef SET_U64P_H
      2 #define SET_U64P_H
      3 
      4 #include <stdint.h>
      5 #include <stdlib.h>
      6 #include <sys/queue.h>
      7 
      8 #define SET_U64_DEFAULT_SIZE (255)
      9 
     10 typedef struct list_entry {
     11   uint64_t v[2];
     12   LIST_ENTRY(list_entry) entries;
     13 } le_t;
     14 
     15 typedef struct {
     16   size_t nelts;
     17   size_t nalloc;
     18 
     19   LIST_HEAD(lh_u64p, list_entry) * head;
     20 } set_u64p_t;
     21 
     22 void set_u64p_init_size(set_u64p_t *s, const size_t size);
     23 void set_u64p_init(set_u64p_t *s);
     24 void set_u64p_clear(set_u64p_t *s);
     25 size_t set_u64p_lookup(le_t *r, set_u64p_t *s, uint64_t *pair);
     26 int set_u64p_insert(set_u64p_t *s, uint64_t *pair);
     27 
     28 #endif