File indexing completed on 2025-02-21 10:04:02
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027 #if !defined(HB_H_IN) && !defined(HB_NO_SINGLE_HEADER_ERROR)
0028 #error "Include <hb.h> instead."
0029 #endif
0030
0031 #ifndef HB_MAP_H
0032 #define HB_MAP_H
0033
0034 #include "hb-common.h"
0035 #include "hb-set.h"
0036
0037 HB_BEGIN_DECLS
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047 #define HB_MAP_VALUE_INVALID HB_CODEPOINT_INVALID
0048
0049
0050
0051
0052
0053
0054
0055 typedef struct hb_map_t hb_map_t;
0056
0057
0058 HB_EXTERN hb_map_t *
0059 hb_map_create (void);
0060
0061 HB_EXTERN hb_map_t *
0062 hb_map_get_empty (void);
0063
0064 HB_EXTERN hb_map_t *
0065 hb_map_reference (hb_map_t *map);
0066
0067 HB_EXTERN void
0068 hb_map_destroy (hb_map_t *map);
0069
0070 HB_EXTERN hb_bool_t
0071 hb_map_set_user_data (hb_map_t *map,
0072 hb_user_data_key_t *key,
0073 void * data,
0074 hb_destroy_func_t destroy,
0075 hb_bool_t replace);
0076
0077 HB_EXTERN void *
0078 hb_map_get_user_data (const hb_map_t *map,
0079 hb_user_data_key_t *key);
0080
0081
0082
0083 HB_EXTERN hb_bool_t
0084 hb_map_allocation_successful (const hb_map_t *map);
0085
0086 HB_EXTERN hb_map_t *
0087 hb_map_copy (const hb_map_t *map);
0088
0089 HB_EXTERN void
0090 hb_map_clear (hb_map_t *map);
0091
0092 HB_EXTERN hb_bool_t
0093 hb_map_is_empty (const hb_map_t *map);
0094
0095 HB_EXTERN unsigned int
0096 hb_map_get_population (const hb_map_t *map);
0097
0098 HB_EXTERN hb_bool_t
0099 hb_map_is_equal (const hb_map_t *map,
0100 const hb_map_t *other);
0101
0102 HB_EXTERN unsigned int
0103 hb_map_hash (const hb_map_t *map);
0104
0105 HB_EXTERN void
0106 hb_map_set (hb_map_t *map,
0107 hb_codepoint_t key,
0108 hb_codepoint_t value);
0109
0110 HB_EXTERN hb_codepoint_t
0111 hb_map_get (const hb_map_t *map,
0112 hb_codepoint_t key);
0113
0114 HB_EXTERN void
0115 hb_map_del (hb_map_t *map,
0116 hb_codepoint_t key);
0117
0118 HB_EXTERN hb_bool_t
0119 hb_map_has (const hb_map_t *map,
0120 hb_codepoint_t key);
0121
0122 HB_EXTERN void
0123 hb_map_update (hb_map_t *map,
0124 const hb_map_t *other);
0125
0126
0127 HB_EXTERN hb_bool_t
0128 hb_map_next (const hb_map_t *map,
0129 int *idx,
0130 hb_codepoint_t *key,
0131 hb_codepoint_t *value);
0132
0133 HB_EXTERN void
0134 hb_map_keys (const hb_map_t *map,
0135 hb_set_t *keys);
0136
0137 HB_EXTERN void
0138 hb_map_values (const hb_map_t *map,
0139 hb_set_t *values);
0140
0141 HB_END_DECLS
0142
0143 #endif