24#ifndef __M_HASH_DICT_H__
25#define __M_HASH_DICT_H__
29#include <mstdlib/base/m_defs.h>
30#include <mstdlib/base/m_types.h>
54struct M_hash_dict_enum;
struct M_buf M_buf_t
Definition: m_buf.h:77
struct M_hash_dict M_hash_dict_t
Definition: m_hash_dict.h:52
void M_hash_dict_enumerate_free(M_hash_dict_enum_t *hashenum)
M_hash_dict_t * M_hash_dict_deserialize(const char *str, size_t len, char delim, char kv_delim, char quote, char escape, M_uint32 flags)
size_t M_hash_dict_num_expansions(const M_hash_dict_t *h)
M_bool M_hash_dict_multi_remove(M_hash_dict_t *h, const char *key, size_t idx)
M_hash_dict_flags_t
Definition: m_hash_dict.h:60
M_bool M_hash_dict_get(const M_hash_dict_t *h, const char *key, const char **value)
size_t M_hash_dict_num_keys(const M_hash_dict_t *h)
size_t M_hash_dict_enumerate(const M_hash_dict_t *h, M_hash_dict_enum_t **hashenum)
M_uint32 M_hash_dict_size(const M_hash_dict_t *h)
M_hash_dict_t * M_hash_dict_duplicate(const M_hash_dict_t *h) M_MALLOC
M_bool M_hash_dict_enumerate_next(const M_hash_dict_t *h, M_hash_dict_enum_t *hashenum, const char **key, const char **value)
const char * M_hash_dict_multi_get_direct(const M_hash_dict_t *h, const char *key, size_t idx)
const char * M_hash_dict_get_direct_default(const M_hash_dict_t *h, const char *key, const char *def)
M_bool M_hash_dict_is_multi(const M_hash_dict_t *h)
M_bool M_hash_dict_serialize_buf(const M_hash_dict_t *dict, M_buf_t *buf, char delim, char kv_delim, char quote, char escape, M_uint32 flags)
size_t M_hash_dict_num_collisions(const M_hash_dict_t *h)
struct M_hash_dict_enum M_hash_dict_enum_t
Definition: m_hash_dict.h:56
char * M_hash_dict_serialize(const M_hash_dict_t *dict, char delim, char kv_delim, char quote, char escape, M_uint32 flags)
M_hash_dict_t * M_hash_dict_create(size_t size, M_uint8 fillpct, M_uint32 flags) M_MALLOC
M_bool M_hash_dict_insert(M_hash_dict_t *h, const char *key, const char *value)
M_bool M_hash_dict_remove(M_hash_dict_t *h, const char *key)
const char * M_hash_dict_get_direct(const M_hash_dict_t *h, const char *key)
void M_hash_dict_merge(M_hash_dict_t **dest, M_hash_dict_t *src) M_FREE(2)
M_bool M_hash_dict_multi_get(const M_hash_dict_t *h, const char *key, size_t idx, const char **value)
M_hash_dict_ser_flag_t
Definition: m_hash_dict.h:353
void M_hash_dict_destroy(M_hash_dict_t *h) M_FREE(1)
M_bool M_hash_dict_multi_len(const M_hash_dict_t *h, const char *key, size_t *len)
@ M_HASH_DICT_STATIC_SEED
Definition: m_hash_dict.h:78
@ M_HASH_DICT_MULTI_SORTASC
Definition: m_hash_dict.h:73
@ M_HASH_DICT_KEYS_ORDERED
Definition: m_hash_dict.h:67
@ M_HASH_DICT_CASECMP
Definition: m_hash_dict.h:62
@ M_HASH_DICT_KEYS_SORTDESC
Definition: m_hash_dict.h:70
@ M_HASH_DICT_MULTI_GETLAST
Definition: m_hash_dict.h:75
@ M_HASH_DICT_DESER_TRIM_WHITESPACE
Definition: m_hash_dict.h:85
@ M_HASH_DICT_KEYS_SORTASC
Definition: m_hash_dict.h:69
@ M_HASH_DICT_MULTI_SORTDESC
Definition: m_hash_dict.h:74
@ M_HASH_DICT_KEYS_UPPER
Definition: m_hash_dict.h:63
@ M_HASH_DICT_MULTI_CASECMP
Definition: m_hash_dict.h:77
@ M_HASH_DICT_NONE
Definition: m_hash_dict.h:61
@ M_HASH_DICT_KEYS_LOWER
Definition: m_hash_dict.h:65
@ M_HASH_DICT_MULTI_VALUE
Definition: m_hash_dict.h:71
@ M_HASH_DICT_SER_FLAG_LF_TO_CRLF
Definition: m_hash_dict.h:358
@ M_HASH_DICT_SER_FLAG_HEXENCODE_NONPRINT
Definition: m_hash_dict.h:357
@ M_HASH_DICT_SER_FLAG_QUOTE_NON_ANS
Definition: m_hash_dict.h:356
@ M_HASH_DICT_SER_FLAG_ALWAYS_QUOTE
Definition: m_hash_dict.h:355
@ M_HASH_DICT_SER_FLAG_NONE
Definition: m_hash_dict.h:354