fzy

terminal fuzzy finder picker

git clone https://9o.is/git/fzy.git

theft_bloom.h

(852B)


      1 #ifndef THEFT_BLOOM_H
      2 #define THEFT_BLOOM_H
      3 
      4 #include <stdlib.h>
      5 #include <stdint.h>
      6 #include <stdbool.h>
      7 
      8 struct theft_bloom {
      9     uint8_t bit_count;
     10     size_t size;
     11     uint8_t bits[];
     12 };
     13 
     14 /* Initialize a bloom filter. */
     15 struct theft_bloom *theft_bloom_init(uint8_t bit_size2);
     16 
     17 /* Hash data and mark it in the bloom filter. */
     18 void theft_bloom_mark(struct theft_bloom *b, uint8_t *data, size_t data_size);
     19 
     20 /* Check whether the data's hash is in the bloom filter. */
     21 bool theft_bloom_check(struct theft_bloom *b, uint8_t *data, size_t data_size);
     22 
     23 /* Free the bloom filter. */
     24 void theft_bloom_free(struct theft_bloom *b);
     25 
     26 /* Dump the bloom filter's contents. (Debugging.) */
     27 void theft_bloom_dump(struct theft_bloom *b);
     28 
     29 /* Recommend a bloom filter size for a given number of trials. */
     30 uint8_t theft_bloom_recommendation(int trials);
     31 
     32 
     33 #endif