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

Go to the source code of this file.
The Private Tree Map Types and Interface.
The private intrusive WAVL tree map interface and type header. This intrusive map is still a fast viable option for users. However, one should seriously consider if the Array_tree_map as well. Due to the struct of array layout, the Array_tree_map variant can use significantly less space than this intrusive variant with almost identical runtime guarantees. However, it relies on indexes in a buffer remaining stable rather than pointers provided by an allocator interface function. These concepts are similar but not identical, so a user may require this intrusive implementation.
Data Structures | |
| struct | CCC_Tree_map_node |
| struct | CCC_Tree_map |
| struct | CCC_Tree_map_entry |
Macros | |
| #define | CCC_private_tree_map_for( private_struct_name, private_node_field, private_key_node_field, private_comparator...) |
| #define | CCC_private_tree_map_default( private_struct_name, private_node_field, private_key_node_field, private_comparator...) |
| #define | CCC_private_tree_map_from( private_type_intruder_field_name, private_key_field_name, private_comparator, private_allocator, private_destructor, private_compound_literal_array...) |
| #define | CCC_private_tree_map_new( private_tree_map_entry, private_allocator_pointer) |
| #define | CCC_private_tree_map_insert_key_val( private_tree_map_entry, new_data, type_compound_literal...) |
| #define | CCC_private_tree_map_insert_and_copy_key( tree_map_insert_entry, tree_map_insert_entry_ret, key, private_allocator_pointer, type_compound_literal...) |
| #define | CCC_private_tree_map_and_modify_with( private_tree_map_entry_pointer, closure_parameter, closure_over_closure_parameter...) |
| #define | CCC_private_tree_map_or_insert_with( private_tree_map_entry_pointer, private_allocator_pointer, type_compound_literal...) |
| #define | CCC_private_tree_map_insert_entry_with( private_tree_map_entry_pointer, private_allocator_pointer, type_compound_literal...) |
| #define | CCC_private_tree_map_try_insert_with( Tree_map_pointer, key, private_allocator_pointer, type_compound_literal...) |
| #define | CCC_private_tree_map_insert_or_assign_with( Tree_map_pointer, key, private_allocator_pointer, type_compound_literal...) |
Functions | |
| void * | CCC_private_tree_map_key_in_slot (struct CCC_Tree_map const *, void const *slot) |
| struct CCC_Tree_map_node * | CCC_private_tree_map_node_in_slot (struct CCC_Tree_map const *, void const *slot) |
| struct CCC_Tree_map_entry | CCC_private_tree_map_entry (struct CCC_Tree_map const *, void const *key) |
| void * | CCC_private_tree_map_insert (struct CCC_Tree_map *, struct CCC_Tree_map_node *parent, CCC_Order last_order, struct CCC_Tree_map_node *type_output_intruder) |
| #define CCC_private_tree_map_and_modify_with | ( | private_tree_map_entry_pointer, | |
| closure_parameter, | |||
| closure_over_closure_parameter... | |||
| ) |
| #define CCC_private_tree_map_default | ( | private_struct_name, | |
| private_node_field, | |||
| private_key_node_field, | |||
| private_comparator... | |||
| ) |
| #define CCC_private_tree_map_for | ( | private_struct_name, | |
| private_node_field, | |||
| private_key_node_field, | |||
| private_comparator... | |||
| ) |
| #define CCC_private_tree_map_from | ( | private_type_intruder_field_name, | |
| private_key_field_name, | |||
| private_comparator, | |||
| private_allocator, | |||
| private_destructor, | |||
| private_compound_literal_array... | |||
| ) |
| #define CCC_private_tree_map_insert_and_copy_key | ( | tree_map_insert_entry, | |
| tree_map_insert_entry_ret, | |||
| key, | |||
| private_allocator_pointer, | |||
| type_compound_literal... | |||
| ) |
| #define CCC_private_tree_map_insert_entry_with | ( | private_tree_map_entry_pointer, | |
| private_allocator_pointer, | |||
| type_compound_literal... | |||
| ) |
| #define CCC_private_tree_map_insert_key_val | ( | private_tree_map_entry, | |
| new_data, | |||
| type_compound_literal... | |||
| ) |
| #define CCC_private_tree_map_insert_or_assign_with | ( | Tree_map_pointer, | |
| key, | |||
| private_allocator_pointer, | |||
| type_compound_literal... | |||
| ) |
| #define CCC_private_tree_map_new | ( | private_tree_map_entry, | |
| private_allocator_pointer | |||
| ) |
| #define CCC_private_tree_map_or_insert_with | ( | private_tree_map_entry_pointer, | |
| private_allocator_pointer, | |||
| type_compound_literal... | |||
| ) |
| #define CCC_private_tree_map_try_insert_with | ( | Tree_map_pointer, | |
| key, | |||
| private_allocator_pointer, | |||
| type_compound_literal... | |||
| ) |
| struct CCC_Tree_map_entry CCC_private_tree_map_entry | ( | struct CCC_Tree_map const * | , |
| void const * | key | ||
| ) |
| void * CCC_private_tree_map_insert | ( | struct CCC_Tree_map * | , |
| struct CCC_Tree_map_node * | parent, | ||
| CCC_Order | last_order, | ||
| struct CCC_Tree_map_node * | type_output_intruder | ||
| ) |
| void * CCC_private_tree_map_key_in_slot | ( | struct CCC_Tree_map const * | , |
| void const * | slot | ||
| ) |
| struct CCC_Tree_map_node * CCC_private_tree_map_node_in_slot | ( | struct CCC_Tree_map const * | , |
| void const * | slot | ||
| ) |