mezis/blurrily

View on GitHub
ext/blurrily/search_tree.h

Summary

Maintainability
Test Coverage
/*
  
  search_tree.h --

  List of all references that's fast to query for existence.

*/
#include <inttypes.h>


typedef struct blurrily_refs_t blurrily_refs_t;


/* Allocate a search tree */
int blurrily_refs_new(blurrily_refs_t** refs_ptr);

/* Destroy a search tree */
void blurrily_refs_free(blurrily_refs_t** refs_ptr);

/* Mark with Ruby's GC */
void blurrily_refs_mark(blurrily_refs_t* refs);

/* Add a reference */
void blurrily_refs_add(blurrily_refs_t* refs, uint32_t ref);

/* Remove a reference */
void blurrily_refs_remove(blurrily_refs_t* refs, uint32_t ref);

/* Test for a reference (1 = present, 0 = absent) */
int blurrily_refs_test(blurrily_refs_t* refs, uint32_t ref);