112typedef enum : uint8_t {
178typedef enum : int8_t {
192typedef enum : uint8_t {
213typedef enum : int8_t {
772#ifdef TYPES_USING_NAMESPACE_CCC
793# define entry_occupied(entry_pointer) CCC_entry_occupied(entry_pointer)
794# define entry_insert_error(entry_pointer) \
795 CCC_entry_insert_error(entry_pointer)
796# define entry_argument_error(entry_pointer) \
797 CCC_entry_argument_error(entry_pointer)
798# define handle_argument_error(handle_pointer) \
799 CCC_handle_argument_error(handle_pointer)
800# define entry_unwrap(entry_pointer) CCC_entry_unwrap(entry_pointer)
801# define entry_status(entry_pointer) CCC_entry_status(entry_pointer)
802# define entry_status_message(status) CCC_entry_status_message(status)
803# define handle_occupied(array_pointer) CCC_handle_occupied(array_pointer)
804# define handle_insert_error(array_pointer) \
805 CCC_handle_insert_error(array_pointer)
806# define handle_unwrap(array_pointer) CCC_handle_unwrap(array_pointer)
807# define handle_status(array_pointer) CCC_handle_status(array_pointer)
808# define handle_status_message(status) CCC_handle_status_message(status)
810# define range_begin(range_pointer) CCC_range_begin(range_pointer)
813# define range_end(range_pointer) CCC_range_end(range_pointer)
815# ifndef range_reverse_begin
816# define range_reverse_begin(range_pointer) \
817 CCC_range_reverse_begin(range_pointer)
819# ifndef range_reverse_end
820# define range_reverse_end(range_pointer) \
821 CCC_range_reverse_end(range_pointer)
823# define handle_range_begin(handle_range_pointer) \
824 CCC_handle_range_begin(handle_range_pointer)
825# define handle_range_end(handle_range_pointer) \
826 CCC_handle_range_end(handle_range_pointer)
827# define handle_range_reverse_begin(handle_range_pointer) \
828 CCC_handle_range_reverse_begin(handle_range_pointer)
829# define handle_range_reverse_end(handle_range_pointer) \
830 CCC_handle_range_reverse_end(handle_range_pointer)
831# define result_message(res) CCC_result_message(res)
A bundle of arguments to pass to the user-implemented Allocator_interface function interface....
Definition: types.h:277
size_t bytes
Definition: types.h:281
void *const context
Definition: types.h:283
void *const input
Definition: types.h:279
The type passed by reference to any container function that may need to allocate memory....
Definition: types.h:369
CCC_Allocator_interface * allocate
Definition: types.h:371
void * context
Definition: types.h:373
A reference to a user type within the container.
Definition: types.h:260
void *const context
Definition: types.h:264
void *const type
Definition: types.h:262
An element comparison helper.
Definition: types.h:389
void *const context
Definition: types.h:395
void const *const type_left
Definition: types.h:391
void const *const type_right
Definition: types.h:393
The type passed by reference to any container function that may need to compare elements....
Definition: types.h:409
void * context
Definition: types.h:413
CCC_Comparator_interface * compare
Definition: types.h:411
A type for returning an unsigned integer from a container for counting. Intended to count sizes,...
Definition: types.h:243
size_t count
Definition: types.h:247
CCC_Result error
Definition: types.h:245
The type passed by reference to any container function that may need to destroy elements....
Definition: types.h:457
CCC_Destructor_interface * destroy
Definition: types.h:459
void * context
Definition: types.h:461
An Occupied or Vacant position in a searchable container.
Definition: types.h:135
void * type
Definition: types.h:137
CCC_Entry_status status
Definition: types.h:139
The result of a range_reverse query on iterable containers. Handles are stable indices into an array ...
Definition: types.h:97
CCC_Handle_index reverse_begin
Definition: types.h:99
CCC_Handle_index reverse_end
Definition: types.h:101
The result of a range query on iterable containers. Handles are stable indices into an array until re...
Definition: types.h:82
CCC_Handle_index begin
Definition: types.h:84
CCC_Handle_index end
Definition: types.h:86
An Occupied or Vacant handle to a flat searchable container entry.
Definition: types.h:150
CCC_Entry_status status
Definition: types.h:154
CCC_Handle_index index
Definition: types.h:152
The type passed by reference to a hash map that needs a hash function and key comparison function....
Definition: types.h:543
void * context
Definition: types.h:549
CCC_Key_comparator_interface * compare
Definition: types.h:547
CCC_Key_hasher_interface * hash
Definition: types.h:545
A read only reference to a key type matching the key field type used for hash containers.
Definition: types.h:523
void *const context
Definition: types.h:527
void const *const key
Definition: types.h:525
A key comparison helper to avoid argument swapping.
Definition: types.h:486
void const *const type_right
Definition: types.h:490
void *const context
Definition: types.h:492
void const *const key_left
Definition: types.h:488
The type passed by reference to any container function that may need to compare keys....
Definition: types.h:505
CCC_Key_comparator_interface * compare
Definition: types.h:507
void * context
Definition: types.h:509
The type passed by reference to any container function that may need to modify elements....
Definition: types.h:429
CCC_Modifier_interface * modify
Definition: types.h:431
void * context
Definition: types.h:433
The result of a range_reverse query on iterable containers.
Definition: types.h:55
void * reverse_end
Definition: types.h:59
void * reverse_begin
Definition: types.h:57
The result of a range query on iterable containers.
Definition: types.h:42
void * end
Definition: types.h:46
void * begin
Definition: types.h:44
#define CCC_range_end(range_pointer)
Obtain the end of the range iterator.
Definition: traits.h:440
#define CCC_range_reverse_end(range_reverse_pointer)
Obtain the end of the reverse range iterator.
Definition: traits.h:453
#define CCC_range_reverse_begin(range_reverse_pointer)
Obtain the beginning of the reverse range iterator.
Definition: traits.h:446
#define CCC_range_begin(range_pointer)
Obtain the beginning of the range iterator.
Definition: traits.h:434
char const * CCC_result_message(CCC_Result result)
Obtain a string message with a description of the error returned from a container operation,...
uint64_t CCC_Key_hasher_interface(CCC_Key_arguments)
A callback function to hash the key type used in a container.
Definition: types.h:534
CCC_Tribool CCC_entry_argument_error(CCC_Entry const *entry)
Determine if an input error has occurred for a function that generates an entry.
CCC_Tribool CCC_entry_insert_error(CCC_Entry const *entry)
Determine if an insertion error has occurred when a function that attempts to insert a value in a con...
CCC_Handle_index CCC_handle_range_reverse_begin(CCC_Handle_range_reverse const *range)
Obtain a handle to the reverse beginning user element stored in a container in the provided range.
CCC_Tribool CCC_entry_occupied(CCC_Entry const *entry)
Determine if an entry is Occupied in the container.
CCC_Order CCC_Comparator_interface(CCC_Comparator_arguments)
A callback function for comparing two elements in a container.
Definition: types.h:404
CCC_Handle_index CCC_handle_range_reverse_end(CCC_Handle_range_reverse const *range)
Obtain a handle to the reverse end user element stored in a container in the provided range.
void * CCC_entry_unwrap(CCC_Entry const *entry)
Unwraps the provided entry providing a reference to the user type obtained from the operation that pr...
size_t CCC_Handle_index
A stable index to user data in a container that uses a flat array as the underlying storage method.
Definition: types.h:72
CCC_Handle_index CCC_handle_unwrap(CCC_Handle const *handle)
Unwraps the provided handle providing a reference to the user type obtained from the operation that p...
CCC_Tribool CCC_handle_occupied(CCC_Handle const *handle)
Determine if an handle is Occupied in the container.
void * CCC_Allocator_interface(CCC_Allocator_arguments)
The function interface for allocating, resizing, and freeing memory.
Definition: types.h:324
CCC_Order
A three-way comparison for comparison functions.
Definition: types.h:213
@ CCC_ORDER_ERROR
Definition: types.h:221
@ CCC_ORDER_EQUAL
Definition: types.h:217
@ CCC_ORDER_LESSER
Definition: types.h:215
@ CCC_ORDER_GREATER
Definition: types.h:219
CCC_Handle_index CCC_handle_range_begin(CCC_Handle_range const *range)
Obtain a handle to the beginning user element stored in a container in the provided range.
CCC_Entry_status
The status monitoring and entry state once it is obtained.
Definition: types.h:112
@ CCC_ENTRY_NO_UNWRAP
Definition: types.h:125
@ CCC_ENTRY_VACANT
Definition: types.h:114
@ CCC_ENTRY_ARGUMENT_ERROR
Definition: types.h:121
@ CCC_ENTRY_OCCUPIED
Definition: types.h:116
@ CCC_ENTRY_INSERT_ERROR
Definition: types.h:119
CCC_Tribool CCC_handle_insert_error(CCC_Handle const *handle)
Determine if an insertion error has occurred when a function that attempts to insert a value in a con...
CCC_Tribool
A three state boolean to allow for an error state. Error is -1, False is 0, and True is 1.
Definition: types.h:178
@ CCC_TRIBOOL_ERROR
Definition: types.h:180
@ CCC_TRUE
Definition: types.h:184
@ CCC_FALSE
Definition: types.h:182
void CCC_Modifier_interface(CCC_Arguments)
A callback function for modifying an element in the container.
Definition: types.h:424
CCC_Result
A result of actions on containers.
Definition: types.h:192
@ CCC_PRIVATE_RESULT_COUNT
Definition: types.h:204
@ CCC_RESULT_NO_ALLOCATION_FUNCTION
Definition: types.h:198
@ CCC_RESULT_ARGUMENT_ERROR
Definition: types.h:202
@ CCC_RESULT_ALLOCATOR_ERROR
Definition: types.h:200
@ CCC_RESULT_FAIL
Definition: types.h:196
@ CCC_RESULT_OK
Definition: types.h:194
CCC_Entry_status CCC_Handle_status
The status monitoring and handle state once it is obtained.
Definition: types.h:165
char const * CCC_entry_status_message(CCC_Entry_status status)
Obtain a string message with a description of the entry status.
CCC_Handle_index CCC_handle_range_end(CCC_Handle_range const *range)
Obtain a handle to the end user element stored in a container in the provided range.
CCC_Tribool CCC_handle_argument_error(CCC_Handle const *handle)
Determine if an input error has occurred for a function that generates an handle.
CCC_Handle_status CCC_handle_status(CCC_Handle const *handle)
Obtain the handle status from a generic handle.
CCC_Order CCC_Key_comparator_interface(CCC_Key_comparator_arguments)
A callback function for three-way comparing two stored keys.
Definition: types.h:500
CCC_Entry_status CCC_entry_status(CCC_Entry const *entry)
Obtain the entry status from a generic entry.
void CCC_Destructor_interface(CCC_Arguments)
A callback function for destroying an element in the container.
Definition: types.h:452
char const * CCC_handle_status_message(CCC_Handle_status status)
Obtain a string message with a description of the handle status.