Cthulhu  0.2.10
Cthulhu compiler collection
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages

Hash set. More...

Collaboration diagram for Unordered set:

Data Structures

struct  set_iter_t
 a set iterator handle More...
 

Functions

CT_NODISCARD CT_STD_API set_tset_new (size_t size, hash_info_t info, arena_t *arena)
 create a new set More...
 
CT_STD_API const void * set_add (set_t *set, const void *key)
 add a key to a set More...
 
CT_NODISCARD CT_PUREFN CT_STD_API bool set_contains (const set_t *set, const void *key)
 check if a set contains a key More...
 
CT_STD_API void set_delete (set_t *set, const void *key)
 remove a key from a set More...
 
CT_NODISCARD CT_PUREFN CT_STD_API bool set_empty (set_t *set)
 check if a set is empty More...
 
CT_STD_API void set_reset (set_t *set)
 clear all keys from a set More...
 
CT_NODISCARD CT_PUREFN CT_STD_API set_iter_t set_iter (set_t *set)
 acquire a set iterator for a set More...
 
CT_NODISCARD CT_STD_API const void * set_next (set_iter_t *iter)
 get the next item from a set iterator More...
 
CT_NODISCARD CT_PUREFN CT_STD_API bool set_has_next (set_iter_t *iter)
 check if a set iterator has more items More...
 

Detailed Description

Hash set.

Function Documentation

◆ set_add()

CT_STD_API const void* set_add ( set_t set,
const void *  key 
)

add a key to a set

Precondition
key is not NULL
Parameters
setthe set to add the key to
keythe key to add
Returns
the key that was added, or the existing key if it already exists

Definition at line 85 of file set.c.

◆ set_contains()

CT_NODISCARD CT_PUREFN CT_STD_API bool set_contains ( const set_t set,
const void *  key 
)

check if a set contains a key

Precondition
key is not NULL
Parameters
setthe set to check
keythe key to check for
Returns
true if the set contains the key

Definition at line 118 of file set.c.

◆ set_delete()

CT_STD_API void set_delete ( set_t set,
const void *  key 
)

remove a key from a set

Precondition
key is not NULL
Parameters
setthe set to remove the key from
keythe key to remove

Definition at line 148 of file set.c.

◆ set_empty()

CT_NODISCARD CT_PUREFN CT_STD_API bool set_empty ( set_t set)

check if a set is empty

Parameters
setthe set to check
Returns
true if the set is empty

Definition at line 179 of file set.c.

◆ set_has_next()

CT_NODISCARD CT_PUREFN CT_STD_API bool set_has_next ( set_iter_t iter)

check if a set iterator has more items

Parameters
iterthe iterator to check
Return values
truethe iterator has more items
falsethe iterator has no more items

Definition at line 301 of file set.c.

◆ set_iter()

CT_NODISCARD CT_PUREFN CT_STD_API set_iter_t set_iter ( set_t set)

acquire a set iterator for a set

Warning
modifying the set invalidates all iterators
Note
the iteration order is unspecified.
Parameters
setthe set to iterate over
Returns
the new iterator

Definition at line 268 of file set.c.

◆ set_new()

CT_NODISCARD CT_STD_API set_t* set_new ( size_t  size,
hash_info_t  info,
arena_t arena 
)

create a new set

Parameters
sizethe initial size of the set
infothe type info for the key type
arenathe arena to allocate from
Returns
the new set

Definition at line 51 of file set.c.

◆ set_next()

CT_NODISCARD CT_STD_API const void* set_next ( set_iter_t iter)

get the next item from a set iterator

Warning
this functions behaviour is undefined if called on an iterator that has no more items
Parameters
iterthe iterator to get the next item from
Returns
the next item

Definition at line 288 of file set.c.

◆ set_reset()

CT_STD_API void set_reset ( set_t set)

clear all keys from a set

Parameters
setthe set to clear

Definition at line 195 of file set.c.