1/* @title: Radix Tree */
2#pragma once
3#include <errno.h>
4#include <stdint.h>
5
6#define RADIX_BITS 6
7#define RADIX_SIZE (1 << RADIX_BITS)
8#define RADIX_MASK (RADIX_SIZE - 1)
9
10#define NUM_INSERTS 128
11#define NUM_LOOKUPS 32
12
13typedef uint64_t (*radix_key_fn)(const void *item);
14
15struct radix_node {
16 struct radix_node *parent;
17 void *slots[RADIX_SIZE];
18 uint64_t present_mask;
19};
20
21struct radix_tree {
22 struct radix_node *root;
23 uint32_t height;
24 radix_key_fn key_fn;
25};
26