Efficient, secure hash table.  
More...
#include "hashtable.h"
#include <stddef.h>
#include <stdbool.h>
#include <stdint.h>
 
Go to the source code of this file.
 | 
| bool  | hashtable_cr_new (struct hashtable *const hashtable, const size_t key_len, const size_t full_key_len, const size_t size) __attribute((warn_unused_result | 
|   | 
| bool  | nonnull (1))) | 
|   | 
| void  | hashtable_cr_free (struct hashtable *const hashtable) __attribute((nonnull(1))) | 
|   | 
| void  | hashtable_cr_add (struct hashtable *const hashtable, const void *const key, void *const elem) __attribute((nonnull(1 | 
|   | 
| void void *  | hashtable_cr_get_first (const struct hashtable *const hashtable, const void *const key) __attribute((warn_unused_result | 
|   | 
| void void  | nonnull (1, 2))) | 
|   | 
| void *  | hashtable_cr_get_next (const struct hashtable *const hashtable, const void *const key, void *const pos) __attribute((warn_unused_result | 
|   | 
| void  | nonnull (1, 2, 3))) | 
|   | 
| void  | hashtable_cr_del (struct hashtable *const hashtable, const void *const key) __attribute((nonnull(1 | 
|   | 
◆ hashtable_cr_add()
      
        
          | void hashtable_cr_add  | 
          ( | 
          struct hashtable *const  | 
          hashtable,  | 
        
        
           | 
           | 
          const void *const  | 
          key,  | 
        
        
           | 
           | 
          void *const  | 
          elem  | 
        
        
           | 
          ) | 
           |  | 
        
      
 
 
◆ hashtable_cr_del()
      
        
          | void hashtable_cr_del  | 
          ( | 
          struct hashtable *const  | 
          hashtable,  | 
        
        
           | 
           | 
          const void *const  | 
          key  | 
        
        
           | 
          ) | 
           |  | 
        
      
 
 
◆ hashtable_cr_free()
      
        
          | void hashtable_cr_free  | 
          ( | 
          struct hashtable *const  | 
          hashtable | ) | 
           | 
        
      
 
 
◆ hashtable_cr_get_first()
      
        
          | void void* hashtable_cr_get_first  | 
          ( | 
          const struct hashtable *const  | 
          hashtable,  | 
        
        
           | 
           | 
          const void *const  | 
          key  | 
        
        
           | 
          ) | 
           |  | 
        
      
 
 
◆ hashtable_cr_get_next()
      
        
          | void* hashtable_cr_get_next  | 
          ( | 
          const struct hashtable *const  | 
          hashtable,  | 
        
        
           | 
           | 
          const void *const  | 
          key,  | 
        
        
           | 
           | 
          void *const  | 
          pos  | 
        
        
           | 
          ) | 
           |  | 
        
      
 
 
◆ hashtable_cr_new()
      
        
          | bool hashtable_cr_new  | 
          ( | 
          struct hashtable *const  | 
          hashtable,  | 
        
        
           | 
           | 
          const size_t  | 
          key_len,  | 
        
        
           | 
           | 
          const size_t  | 
          full_key_len,  | 
        
        
           | 
           | 
          const size_t  | 
          size  | 
        
        
           | 
          ) | 
           |  | 
        
      
 
 
◆ nonnull() [1/3]
◆ nonnull() [2/3]
      
        
          | void void nonnull  | 
          ( | 
          1  | 
          ,  | 
        
        
           | 
           | 
          2  | 
            | 
        
        
           | 
          ) | 
           |  | 
        
      
 
 
◆ nonnull() [3/3]
      
        
          | void nonnull  | 
          ( | 
          1  | 
          ,  | 
        
        
           | 
           | 
          2  | 
          ,  | 
        
        
           | 
           | 
          3  | 
            | 
        
        
           | 
          ) | 
           |  |