diff --git a/src_2hashmap_2hashmap_8h_source.html b/src_2hashmap_2hashmap_8h_source.html index e6d926641dabc0c2bc48ad5187f4470d6018a4f5..d923046f331d13d13346be036da67dd7d6766a23 100644 --- a/src_2hashmap_2hashmap_8h_source.html +++ b/src_2hashmap_2hashmap_8h_source.html @@ -81,57 +81,58 @@ $(function() { <div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#include <stddef.h></span></div> <div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#include <stdint.h></span></div> <div class="line"><a name="l00011"></a><span class="lineno"> 11</span>  </div> -<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#if defined(__cplusplus)</span></div> -<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div> -<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#endif </span><span class="comment">// __cplusplus</span></div> -<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>  </div> -<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="keyword">struct </span><a class="code" href="structhashmap.html">hashmap</a>;</div> -<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>  </div> -<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="keyword">struct </span><a class="code" href="structhashmap.html">hashmap</a> *hashmap_new(<span class="keywordtype">size_t</span> elsize, <span class="keywordtype">size_t</span> cap, uint64_t seed0, </div> -<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>  uint64_t seed1, </div> -<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>  uint64_t (*hash)(<span class="keyword">const</span> <span class="keywordtype">void</span> *item, uint64_t seed0, uint64_t seed1),</div> -<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  <span class="keywordtype">int</span> (*compare)(<span class="keyword">const</span> <span class="keywordtype">void</span> *a, <span class="keyword">const</span> <span class="keywordtype">void</span> *b, <span class="keywordtype">void</span> *udata),</div> -<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>  <span class="keywordtype">void</span> (*elfree)(<span class="keywordtype">void</span> *item),</div> -<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>  <span class="keywordtype">void</span> *udata);</div> -<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>  </div> -<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="keyword">struct </span><a class="code" href="structhashmap.html">hashmap</a> *hashmap_new_with_allocator(<span class="keywordtype">void</span> *(*malloc)(<span class="keywordtype">size_t</span>), </div> -<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  <span class="keywordtype">void</span> *(*realloc)(<span class="keywordtype">void</span> *, <span class="keywordtype">size_t</span>), <span class="keywordtype">void</span> (*free)(<span class="keywordtype">void</span>*), <span class="keywordtype">size_t</span> elsize, </div> -<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  <span class="keywordtype">size_t</span> cap, uint64_t seed0, uint64_t seed1,</div> -<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  uint64_t (*hash)(<span class="keyword">const</span> <span class="keywordtype">void</span> *item, uint64_t seed0, uint64_t seed1),</div> -<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  <span class="keywordtype">int</span> (*compare)(<span class="keyword">const</span> <span class="keywordtype">void</span> *a, <span class="keyword">const</span> <span class="keywordtype">void</span> *b, <span class="keywordtype">void</span> *udata),</div> -<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  <span class="keywordtype">void</span> (*elfree)(<span class="keywordtype">void</span> *item),</div> -<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  <span class="keywordtype">void</span> *udata);</div> -<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  </div> -<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="keywordtype">void</span> hashmap_free(<span class="keyword">struct</span> <a class="code" href="structhashmap.html">hashmap</a> *map);</div> -<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="keywordtype">void</span> hashmap_clear(<span class="keyword">struct</span> <a class="code" href="structhashmap.html">hashmap</a> *map, <span class="keywordtype">bool</span> update_cap);</div> -<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="keywordtype">size_t</span> hashmap_count(<span class="keyword">struct</span> <a class="code" href="structhashmap.html">hashmap</a> *map);</div> -<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="keywordtype">bool</span> hashmap_oom(<span class="keyword">struct</span> <a class="code" href="structhashmap.html">hashmap</a> *map);</div> -<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">const</span> <span class="keywordtype">void</span> *hashmap_get(<span class="keyword">struct</span> <a class="code" href="structhashmap.html">hashmap</a> *map, <span class="keyword">const</span> <span class="keywordtype">void</span> *item);</div> -<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="keyword">const</span> <span class="keywordtype">void</span> *hashmap_set(<span class="keyword">struct</span> <a class="code" href="structhashmap.html">hashmap</a> *map, <span class="keyword">const</span> <span class="keywordtype">void</span> *item);</div> -<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="keyword">const</span> <span class="keywordtype">void</span> *hashmap_delete(<span class="keyword">struct</span> <a class="code" href="structhashmap.html">hashmap</a> *map, <span class="keyword">const</span> <span class="keywordtype">void</span> *item);</div> -<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="keyword">const</span> <span class="keywordtype">void</span> *hashmap_probe(<span class="keyword">struct</span> <a class="code" href="structhashmap.html">hashmap</a> *map, uint64_t position);</div> -<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="keywordtype">bool</span> hashmap_scan(<span class="keyword">struct</span> <a class="code" href="structhashmap.html">hashmap</a> *map, <span class="keywordtype">bool</span> (*iter)(<span class="keyword">const</span> <span class="keywordtype">void</span> *item, <span class="keywordtype">void</span> *udata), <span class="keywordtype">void</span> *udata);</div> -<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="keywordtype">bool</span> hashmap_iter(<span class="keyword">struct</span> <a class="code" href="structhashmap.html">hashmap</a> *map, <span class="keywordtype">size_t</span> *i, <span class="keywordtype">void</span> **item);</div> -<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  </div> -<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> uint64_t hashmap_sip(<span class="keyword">const</span> <span class="keywordtype">void</span> *data, <span class="keywordtype">size_t</span> len, uint64_t seed0, uint64_t seed1);</div> -<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> uint64_t hashmap_murmur(<span class="keyword">const</span> <span class="keywordtype">void</span> *data, <span class="keywordtype">size_t</span> len, uint64_t seed0, uint64_t seed1);</div> -<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> uint64_t hashmap_xxhash3(<span class="keyword">const</span> <span class="keywordtype">void</span> *data, <span class="keywordtype">size_t</span> len, uint64_t seed0, uint64_t seed1);</div> -<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  </div> -<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="keyword">const</span> <span class="keywordtype">void</span> *hashmap_get_with_hash(<span class="keyword">struct</span> <a class="code" href="structhashmap.html">hashmap</a> *map, <span class="keyword">const</span> <span class="keywordtype">void</span> *key, uint64_t hash);</div> -<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="keyword">const</span> <span class="keywordtype">void</span> *hashmap_delete_with_hash(<span class="keyword">struct</span> <a class="code" href="structhashmap.html">hashmap</a> *map, <span class="keyword">const</span> <span class="keywordtype">void</span> *key, uint64_t hash);</div> -<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="keyword">const</span> <span class="keywordtype">void</span> *hashmap_set_with_hash(<span class="keyword">struct</span> <a class="code" href="structhashmap.html">hashmap</a> *map, <span class="keyword">const</span> <span class="keywordtype">void</span> *item, uint64_t hash);</div> -<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="keywordtype">void</span> hashmap_set_grow_by_power(<span class="keyword">struct</span> <a class="code" href="structhashmap.html">hashmap</a> *map, <span class="keywordtype">size_t</span> power);</div> -<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="keywordtype">void</span> hashmap_set_load_factor(<span class="keyword">struct</span> <a class="code" href="structhashmap.html">hashmap</a> *map, <span class="keywordtype">double</span> load_factor);</div> -<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  </div> +<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>  </div> +<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#if defined(__cplusplus)</span></div> +<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div> +<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#endif </span><span class="comment">/* __cplusplus */</span><span class="preprocessor"></span></div> +<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>  </div> +<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structhashmap.html">hashmap</a> <a class="code" href="structhashmap.html">hashmap</a>;</div> +<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>  </div> +<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="keyword">struct </span><a class="code" href="structhashmap.html">hashmap</a> *hashmap_new(<span class="keywordtype">size_t</span> elsize, <span class="keywordtype">size_t</span> cap, uint64_t seed0, </div> +<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>  uint64_t seed1, </div> +<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  uint64_t (*hash)(<span class="keyword">const</span> <span class="keywordtype">void</span> *item, uint64_t seed0, uint64_t seed1),</div> +<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>  <span class="keywordtype">int</span> (*compare)(<span class="keyword">const</span> <span class="keywordtype">void</span> *a, <span class="keyword">const</span> <span class="keywordtype">void</span> *b, <span class="keywordtype">void</span> *udata),</div> +<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>  <span class="keywordtype">void</span> (*elfree)(<span class="keywordtype">void</span> *item),</div> +<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>  <span class="keywordtype">void</span> *udata);</div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>  </div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="keyword">struct </span><a class="code" href="structhashmap.html">hashmap</a> *hashmap_new_with_allocator(<span class="keywordtype">void</span> *(*malloc)(<span class="keywordtype">size_t</span>), </div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  <span class="keywordtype">void</span> *(*realloc)(<span class="keywordtype">void</span> *, <span class="keywordtype">size_t</span>), <span class="keywordtype">void</span> (*free)(<span class="keywordtype">void</span>*), <span class="keywordtype">size_t</span> elsize, </div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  <span class="keywordtype">size_t</span> cap, uint64_t seed0, uint64_t seed1,</div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  uint64_t (*hash)(<span class="keyword">const</span> <span class="keywordtype">void</span> *item, uint64_t seed0, uint64_t seed1),</div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  <span class="keywordtype">int</span> (*compare)(<span class="keyword">const</span> <span class="keywordtype">void</span> *a, <span class="keyword">const</span> <span class="keywordtype">void</span> *b, <span class="keywordtype">void</span> *udata),</div> +<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  <span class="keywordtype">void</span> (*elfree)(<span class="keywordtype">void</span> *item),</div> +<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  <span class="keywordtype">void</span> *udata);</div> +<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  </div> +<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="keywordtype">void</span> hashmap_free(<span class="keyword">struct</span> <a class="code" href="structhashmap.html">hashmap</a> *map);</div> +<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="keywordtype">void</span> hashmap_clear(<span class="keyword">struct</span> <a class="code" href="structhashmap.html">hashmap</a> *map, <span class="keywordtype">bool</span> update_cap);</div> +<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="keywordtype">size_t</span> hashmap_count(<span class="keyword">struct</span> <a class="code" href="structhashmap.html">hashmap</a> *map);</div> +<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="keywordtype">bool</span> hashmap_oom(<span class="keyword">struct</span> <a class="code" href="structhashmap.html">hashmap</a> *map);</div> +<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="keyword">const</span> <span class="keywordtype">void</span> *hashmap_get(<span class="keyword">struct</span> <a class="code" href="structhashmap.html">hashmap</a> *map, <span class="keyword">const</span> <span class="keywordtype">void</span> *item);</div> +<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="keyword">const</span> <span class="keywordtype">void</span> *hashmap_set(<span class="keyword">struct</span> <a class="code" href="structhashmap.html">hashmap</a> *map, <span class="keyword">const</span> <span class="keywordtype">void</span> *item);</div> +<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="keyword">const</span> <span class="keywordtype">void</span> *hashmap_delete(<span class="keyword">struct</span> <a class="code" href="structhashmap.html">hashmap</a> *map, <span class="keyword">const</span> <span class="keywordtype">void</span> *item);</div> +<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="keyword">const</span> <span class="keywordtype">void</span> *hashmap_probe(<span class="keyword">struct</span> <a class="code" href="structhashmap.html">hashmap</a> *map, uint64_t position);</div> +<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="keywordtype">bool</span> hashmap_scan(<span class="keyword">struct</span> <a class="code" href="structhashmap.html">hashmap</a> *map, <span class="keywordtype">bool</span> (*iter)(<span class="keyword">const</span> <span class="keywordtype">void</span> *item, <span class="keywordtype">void</span> *udata), <span class="keywordtype">void</span> *udata);</div> +<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="keywordtype">bool</span> hashmap_iter(<span class="keyword">struct</span> <a class="code" href="structhashmap.html">hashmap</a> *map, <span class="keywordtype">size_t</span> *i, <span class="keywordtype">void</span> **item);</div> +<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  </div> +<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> uint64_t hashmap_sip(<span class="keyword">const</span> <span class="keywordtype">void</span> *data, <span class="keywordtype">size_t</span> len, uint64_t seed0, uint64_t seed1);</div> +<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> uint64_t hashmap_murmur(<span class="keyword">const</span> <span class="keywordtype">void</span> *data, <span class="keywordtype">size_t</span> len, uint64_t seed0, uint64_t seed1);</div> +<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> uint64_t hashmap_xxhash3(<span class="keyword">const</span> <span class="keywordtype">void</span> *data, <span class="keywordtype">size_t</span> len, uint64_t seed0, uint64_t seed1);</div> +<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  </div> +<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="keyword">const</span> <span class="keywordtype">void</span> *hashmap_get_with_hash(<span class="keyword">struct</span> <a class="code" href="structhashmap.html">hashmap</a> *map, <span class="keyword">const</span> <span class="keywordtype">void</span> *key, uint64_t hash);</div> +<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="keyword">const</span> <span class="keywordtype">void</span> *hashmap_delete_with_hash(<span class="keyword">struct</span> <a class="code" href="structhashmap.html">hashmap</a> *map, <span class="keyword">const</span> <span class="keywordtype">void</span> *key, uint64_t hash);</div> +<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="keyword">const</span> <span class="keywordtype">void</span> *hashmap_set_with_hash(<span class="keyword">struct</span> <a class="code" href="structhashmap.html">hashmap</a> *map, <span class="keyword">const</span> <span class="keywordtype">void</span> *item, uint64_t hash);</div> +<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="keywordtype">void</span> hashmap_set_grow_by_power(<span class="keyword">struct</span> <a class="code" href="structhashmap.html">hashmap</a> *map, <span class="keywordtype">size_t</span> power);</div> +<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="keywordtype">void</span> hashmap_set_load_factor(<span class="keyword">struct</span> <a class="code" href="structhashmap.html">hashmap</a> *map, <span class="keywordtype">double</span> load_factor);</div> <div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  </div> -<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="comment">// DEPRECATED: use `hashmap_new_with_allocator`</span></div> -<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="keywordtype">void</span> hashmap_set_allocator(<span class="keywordtype">void</span> *(*malloc)(<span class="keywordtype">size_t</span>), <span class="keywordtype">void</span> (*free)(<span class="keywordtype">void</span>*));</div> -<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  </div> -<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="preprocessor">#if defined(__cplusplus)</span></div> -<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> }</div> -<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="preprocessor">#endif </span><span class="comment">// __cplusplus</span></div> -<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  </div> -<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="preprocessor">#endif </span><span class="comment">// HASHMAP_H</span></div> +<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  </div> +<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="comment">// DEPRECATED: use `hashmap_new_with_allocator`</span></div> +<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="keywordtype">void</span> hashmap_set_allocator(<span class="keywordtype">void</span> *(*malloc)(<span class="keywordtype">size_t</span>), <span class="keywordtype">void</span> (*free)(<span class="keywordtype">void</span>*));</div> +<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  </div> +<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="preprocessor">#if defined(__cplusplus)</span></div> +<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> }</div> +<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="preprocessor">#endif </span><span class="comment">/* __cplusplus */</span><span class="preprocessor"></span></div> +<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  </div> +<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="preprocessor">#endif </span><span class="comment">/* HASHMAP_H */</span><span class="preprocessor"></span></div> <div class="ttc" id="astructhashmap_html"><div class="ttname"><a href="structhashmap.html">hashmap</a></div><div class="ttdef"><b>Definition:</b> hashmap.c:37</div></div> </div><!-- fragment --></div><!-- contents --> <!-- start footer part -->