summaryrefslogtreecommitdiff
path: root/include/parserutils/utils/dict.h
blob: ac6050c54cbb3105d2284b7377ecc6da2bdfea9f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
/*
 * This file is part of LibParserUtils.
 * Licensed under the MIT License,
 *                http://www.opensource.org/licenses/mit-license.php
 * Copyright 2008 John-Mark Bell <jmb@netsurf-browser.org>
 */

#ifndef parserutils_utils_dict_h_
#define parserutils_utils_dict_h_

#include <parserutils/errors.h>
#include <parserutils/functypes.h>

/**
 * A dictionary entry
 */
struct parserutils_dict_entry
{
	size_t len;			/**< Length of data, in bytes */
	uint8_t *data;			/**< Entry data */
};
typedef struct parserutils_dict_entry parserutils_dict_entry;

struct parserutils_dict;
typedef struct parserutils_dict parserutils_dict;

parserutils_error parserutils_dict_create(parserutils_alloc alloc, void *pw,
		parserutils_dict **dict);
parserutils_error parserutils_dict_destroy(parserutils_dict *dict);

parserutils_error parserutils_dict_insert(parserutils_dict *dict,
		const uint8_t *data, size_t len, 
		const parserutils_dict_entry **result);

#endif