Fri, 24 Jan 2025 21:12:09 +0100
assign proper names to the documentation topics
relates to #451
1143
0559812df10c
assign proper names to the documentation topics
Mike Becker <universe@uap-core.de>
parents:
1142
diff
changeset
|
1 | # Map Interface |
1141 | 2 | |
3 | Similar to the list interface, the map interface provides a common API for implementing maps. | |
4 | There are some minor subtle differences, though. | |
5 | ||
6 | First, the `remove` method is not always a destructive removal. | |
7 | Instead, the last argument is a Boolean that indicates whether the element shall be destroyed or returned. | |
8 | ```c | |
9 | void *(*remove)(CxMap *map, CxHashKey key, bool destroy); | |
10 | ``` | |
11 | When you implement this method, you are either supposed to invoke the destructors and return `NULL`, | |
12 | or just remove the element from the map and return it. | |
13 | ||
14 | Secondly, the iterator method is a bit more complete. The signature is as follows: | |
15 | ```c | |
16 | CxIterator (*iterator)(const CxMap *map, enum cx_map_iterator_type type); | |
17 | ``` | |
18 | There are three map iterator types: for values, for keys, for pairs. | |
19 | Depending on the iterator type requested, you need to create an iterator with the correct methods that | |
20 | return the requested thing. | |
21 | There are no automatic checks to enforce this - it's completely up to you. | |
22 | If you need inspiration on how to do that, check the hash map implementation that comes with UCX. | |
1142
9437530176bc
add symbols that need documentation as TODOs
Mike Becker <universe@uap-core.de>
parents:
1141
diff
changeset
|
23 | |
9437530176bc
add symbols that need documentation as TODOs
Mike Becker <universe@uap-core.de>
parents:
1141
diff
changeset
|
24 | ## Undocumented Symbols (TODO) |
9437530176bc
add symbols that need documentation as TODOs
Mike Becker <universe@uap-core.de>
parents:
1141
diff
changeset
|
25 | ### cx_empty_map |
9437530176bc
add symbols that need documentation as TODOs
Mike Becker <universe@uap-core.de>
parents:
1141
diff
changeset
|
26 | ### cxEmptyMap |
9437530176bc
add symbols that need documentation as TODOs
Mike Becker <universe@uap-core.de>
parents:
1141
diff
changeset
|
27 | ### cxMapFree |
9437530176bc
add symbols that need documentation as TODOs
Mike Becker <universe@uap-core.de>
parents:
1141
diff
changeset
|
28 | ### cxMapMutIterator |
9437530176bc
add symbols that need documentation as TODOs
Mike Becker <universe@uap-core.de>
parents:
1141
diff
changeset
|
29 | ### cxMapMutIteratorKeys |
9437530176bc
add symbols that need documentation as TODOs
Mike Becker <universe@uap-core.de>
parents:
1141
diff
changeset
|
30 | ### cxMapMutIteratorValues |