38 lines
918 B
Cython
38 lines
918 B
Cython
from libc.stdint cimport int8_t, int16_t, int32_t, int64_t, intptr_t
|
|
from libc.stdint cimport uint8_t, uint16_t, uint32_t, uint64_t, uintptr_t
|
|
cdef extern from *:
|
|
ctypedef bint bool
|
|
ctypedef struct va_list
|
|
|
|
cdef extern from *:
|
|
|
|
ctypedef const char *Str;
|
|
|
|
ctypedef struct HashTable_Str__c_char__false:
|
|
uintptr_t num_buckets;
|
|
uintptr_t capacity;
|
|
uint8_t *occupied;
|
|
Str *keys;
|
|
char *vals;
|
|
|
|
ctypedef HashTable_Str__c_char__false MySet;
|
|
|
|
ctypedef void (*SetCallback)(Str key);
|
|
|
|
ctypedef struct HashTable_Str__u64__true:
|
|
uintptr_t num_buckets;
|
|
uintptr_t capacity;
|
|
uint8_t *occupied;
|
|
Str *keys;
|
|
uint64_t *vals;
|
|
|
|
ctypedef void (*MapCallback)(Str key, uint64_t val);
|
|
|
|
MySet *new_set();
|
|
|
|
void set_for_each(const MySet *set, SetCallback callback);
|
|
|
|
HashTable_Str__u64__true *new_map();
|
|
|
|
void map_for_each(const HashTable_Str__u64__true *map, MapCallback callback);
|