|
C Container Collection (CCC)
|
The Private Array Adaptive Map Types and Interface. More...
#include "../../types.h"

Go to the source code of this file.
The Private Array Adaptive Map Types and Interface.
The array adaptive map offers a struct-of-arrays layout for slightly better alignment and memory utilization. This also allows for index handle stability in contrast to pointer stability that the intrusive variant offers.
Data Structures | |
| struct | CCC_Array_adaptive_map_node |
| struct | CCC_Array_adaptive_map |
| struct | CCC_Array_adaptive_map_handle |
Macros | |
| #define | CCC_private_array_adaptive_map_compound_literal_array_capacity( private_type_compound_literal_array) |
| #define | CCC_private_array_adaptive_map_default( private_type_name, private_key_node_field, private_comparator...) |
| #define | CCC_private_array_adaptive_map_for( private_type_name, private_key_field, private_comparator, private_capacity, private_memory_pointer) |
| #define | CCC_private_array_adaptive_map_from( private_key_field, private_comparator, private_allocator, private_optional_cap, private_array_compound_literal...) |
| #define | CCC_private_array_adaptive_map_with_capacity( private_type_name, private_key_field, private_comparator, private_allocator, private_cap) |
| #define | CCC_private_array_adaptive_map_storage_for( private_type_compound_literal_array, optional_storage_specifier...) |
| #define | CCC_private_array_adaptive_map_with_storage( private_key_node_field, private_comparator, private_compound_literal, private_optional_storage_specifier...) |
| #define | CCC_private_array_adaptive_map_with_allocator_storage( private_key_field, private_comparator, private_allocator, private_compound_literal) |
| #define | CCC_private_array_adaptive_map_as( array_adaptive_map_pointer, type_name, handle...) |
| #define | CCC_private_array_adaptive_map_and_modify_with( array_adaptive_map_handle_pointer, closure_parameter, closure_over_closure_parameter...) |
| #define | CCC_private_array_adaptive_map_or_insert_with( array_adaptive_map_handle_pointer, private_allocator_pointer, type_compound_literal...) |
| #define | CCC_private_array_adaptive_map_insert_handle_with( array_adaptive_map_handle_pointer, private_allocator_pointer, type_compound_literal...) |
| #define | CCC_private_array_adaptive_map_try_insert_with( array_adaptive_map_pointer, key, private_allocator_pointer, type_compound_literal...) |
| #define | CCC_private_array_adaptive_map_insert_or_assign_with( array_adaptive_map_pointer, key, private_allocator_pointer, type_compound_literal...) |
Functions | |
| void | CCC_private_array_adaptive_map_insert (struct CCC_Array_adaptive_map *, size_t) |
| struct CCC_Array_adaptive_map_handle | CCC_private_array_adaptive_map_handle (struct CCC_Array_adaptive_map *, void const *key) |
| void * | CCC_private_array_adaptive_map_data_at (struct CCC_Array_adaptive_map const *, size_t slot) |
| void * | CCC_private_array_adaptive_map_key_at (struct CCC_Array_adaptive_map const *, size_t slot) |
| size_t | CCC_private_array_adaptive_map_allocate_slot (struct CCC_Array_adaptive_map *, CCC_Allocator const *) |
| #define CCC_private_array_adaptive_map_and_modify_with | ( | array_adaptive_map_handle_pointer, | |
| closure_parameter, | |||
| closure_over_closure_parameter... | |||
| ) |
| #define CCC_private_array_adaptive_map_as | ( | array_adaptive_map_pointer, | |
| type_name, | |||
| handle... | |||
| ) |
| #define CCC_private_array_adaptive_map_compound_literal_array_capacity | ( | private_type_compound_literal_array | ) |
| #define CCC_private_array_adaptive_map_default | ( | private_type_name, | |
| private_key_node_field, | |||
| private_comparator... | |||
| ) |
All other fields default to NULL or 0.
| #define CCC_private_array_adaptive_map_for | ( | private_type_name, | |
| private_key_field, | |||
| private_comparator, | |||
| private_capacity, | |||
| private_memory_pointer | |||
| ) |
| #define CCC_private_array_adaptive_map_from | ( | private_key_field, | |
| private_comparator, | |||
| private_allocator, | |||
| private_optional_cap, | |||
| private_array_compound_literal... | |||
| ) |
Initialize an array adaptive map from user input list.
| #define CCC_private_array_adaptive_map_insert_handle_with | ( | array_adaptive_map_handle_pointer, | |
| private_allocator_pointer, | |||
| type_compound_literal... | |||
| ) |
| #define CCC_private_array_adaptive_map_insert_or_assign_with | ( | array_adaptive_map_pointer, | |
| key, | |||
| private_allocator_pointer, | |||
| type_compound_literal... | |||
| ) |
| #define CCC_private_array_adaptive_map_or_insert_with | ( | array_adaptive_map_handle_pointer, | |
| private_allocator_pointer, | |||
| type_compound_literal... | |||
| ) |
| #define CCC_private_array_adaptive_map_storage_for | ( | private_type_compound_literal_array, | |
| optional_storage_specifier... | |||
| ) |
The user can declare a fixed size realtime ordered map with the help of static asserts to ensure the layout is compatible with our internal metadata.
| #define CCC_private_array_adaptive_map_try_insert_with | ( | array_adaptive_map_pointer, | |
| key, | |||
| private_allocator_pointer, | |||
| type_compound_literal... | |||
| ) |
| #define CCC_private_array_adaptive_map_with_allocator_storage | ( | private_key_field, | |
| private_comparator, | |||
| private_allocator, | |||
| private_compound_literal | |||
| ) |
Helper for allocating a fixed size map dynamically.
| #define CCC_private_array_adaptive_map_with_capacity | ( | private_type_name, | |
| private_key_field, | |||
| private_comparator, | |||
| private_allocator, | |||
| private_cap | |||
| ) |
| #define CCC_private_array_adaptive_map_with_storage | ( | private_key_node_field, | |
| private_comparator, | |||
| private_compound_literal, | |||
| private_optional_storage_specifier... | |||
| ) |
| size_t CCC_private_array_adaptive_map_allocate_slot | ( | struct CCC_Array_adaptive_map * | , |
| CCC_Allocator const * | |||
| ) |
| void * CCC_private_array_adaptive_map_data_at | ( | struct CCC_Array_adaptive_map const * | , |
| size_t | slot | ||
| ) |
| struct CCC_Array_adaptive_map_handle CCC_private_array_adaptive_map_handle | ( | struct CCC_Array_adaptive_map * | , |
| void const * | key | ||
| ) |
| void CCC_private_array_adaptive_map_insert | ( | struct CCC_Array_adaptive_map * | , |
| size_t | |||
| ) |
| void * CCC_private_array_adaptive_map_key_at | ( | struct CCC_Array_adaptive_map const * | , |
| size_t | slot | ||
| ) |