12345678910111213141516171819202122232425262728293031323334353637383940 |
- cdef extern from 'set.h':
- #ctypedef _Set Set
- #ctypedef _SetEntry SetEntry
- ctypedef void *SetValue
- ctypedef struct SetEntry:
- SetValue data
- SetEntry *next
- ctypedef struct Set:
- SetEntry **table
- unsigned int entries
- unsigned int table_size
- unsigned int prime_index
- #SetHashFunc hash_func
- #SetEqualFunc equal_func
- #SetFreeFunc free_func
- ctypedef struct SetIterator:
- pass
- ctypedef unsigned int (*SetHashFunc)(SetValue value)
- ctypedef bint (*SetEqualFunc)(SetValue value1, SetValue value2)
- ctypedef void (*SetFreeFunc)(SetValue value)
- Set *set_new(SetHashFunc hash_func, SetEqualFunc equal_func)
- void set_free(Set *set)
- # TODO This should return an int, ideally. See
- # https://github.com/fragglet/c-algorithms/issues/20
- bint set_insert(Set *set, SetValue data)
- bint set_query(Set *set, SetValue data)
- unsigned int set_num_entries(Set *set)
- SetValue *set_to_array(Set *set)
- Set *set_union(Set *set1, Set *set2)
- Set *set_intersection(Set *set1, Set *set2)
- void set_iterate(Set *set, SetIterator *iter)
- bint set_iter_has_more(SetIterator *iterator)
- SetValue set_iter_next(SetIterator *iterator)
|