3 #include <isl/printer.h>
5 #if defined(__cplusplus)
9 #define ISL_xCAT(A,B) A ## B
10 #define ISL_CAT(A,B) ISL_xCAT(A,B)
11 #define ISL_xFN(TYPE,NAME) TYPE ## _ ## NAME
12 #define ISL_FN(TYPE,NAME) ISL_xFN(TYPE,NAME)
14 struct __isl_export ISL_HMAP
;
15 typedef struct ISL_HMAP ISL_HMAP
;
18 __isl_give ISL_HMAP
*ISL_FN(ISL_HMAP
,alloc
)(isl_ctx
*ctx
, int min_size
);
19 __isl_give ISL_HMAP
*ISL_FN(ISL_HMAP
,copy
)(__isl_keep ISL_HMAP
*hmap
);
20 __isl_null ISL_HMAP
*ISL_FN(ISL_HMAP
,free
)(__isl_take ISL_HMAP
*hmap
);
22 isl_ctx
*ISL_FN(ISL_HMAP
,get_ctx
)(__isl_keep ISL_HMAP
*hmap
);
24 __isl_give
ISL_MAYBE(ISL_VAL
) ISL_FN(ISL_HMAP
,try_get
)(
25 __isl_keep ISL_HMAP
*hmap
, __isl_keep ISL_KEY
*key
);
26 isl_bool
ISL_FN(ISL_HMAP
,has
)(__isl_keep ISL_HMAP
*hmap
,
27 __isl_keep ISL_KEY
*key
);
28 __isl_give ISL_VAL
*ISL_FN(ISL_HMAP
,get
)(__isl_keep ISL_HMAP
*hmap
,
29 __isl_take ISL_KEY
*key
);
31 __isl_give ISL_HMAP
*ISL_FN(ISL_HMAP
,set
)(__isl_take ISL_HMAP
*hmap
,
32 __isl_take ISL_KEY
*key
, __isl_take ISL_VAL
*val
);
33 __isl_give ISL_HMAP
*ISL_FN(ISL_HMAP
,drop
)(__isl_take ISL_HMAP
*hmap
,
34 __isl_take ISL_KEY
*key
);
36 isl_stat
ISL_FN(ISL_HMAP
,foreach
)(__isl_keep ISL_HMAP
*hmap
,
37 isl_stat (*fn
)(__isl_take ISL_KEY
*key
, __isl_take ISL_VAL
*val
,
40 isl_bool
ISL_FN(ISL_HMAP
,every
)(__isl_keep ISL_HMAP
*hmap
,
41 isl_bool (*test
)(__isl_keep ISL_KEY
*key
, __isl_keep ISL_VAL
*val
,
45 #ifdef ISL_HMAP_IS_EQUAL
47 isl_bool
ISL_HMAP_IS_EQUAL(__isl_keep ISL_HMAP
*hmap1
,
48 __isl_keep ISL_HMAP
*hmap2
);
51 #ifdef ISL_HMAP_HAVE_READ_FROM_STR
53 __isl_give ISL_HMAP
*ISL_FN(ISL_HMAP
,read_from_str
)(isl_ctx
*ctx
,
56 __isl_give
char *ISL_FN(ISL_HMAP
,to_str
)(__isl_keep ISL_HMAP
*hmap
);
57 __isl_give isl_printer
*ISL_FN(isl_printer_print
,ISL_HMAP_SUFFIX
)(
58 __isl_take isl_printer
*p
, __isl_keep ISL_HMAP
*hmap
);
59 void ISL_FN(ISL_HMAP
,dump
)(__isl_keep ISL_HMAP
*hmap
);
71 #if defined(__cplusplus)