18 #ifndef __XMMSV_BUILD_H__ 19 #define __XMMSV_BUILD_H__ 33 static inline const char *__xmmsv_identity_const_charp (
const char *v) {
return v;}
34 static inline xmmsv_t *__xmmsv_identity_xmmsv (
xmmsv_t *v) {
return v;}
37 #define XMMSV_DICT_ENTRY(k, v) __xmmsv_identity_const_charp (k), __xmmsv_identity_xmmsv (v) 38 #define XMMSV_DICT_ENTRY_STR(k, v) XMMSV_DICT_ENTRY (k, __xmmsv_null_to_none (xmmsv_new_string (v))) 39 #define XMMSV_DICT_ENTRY_INT(k, v) XMMSV_DICT_ENTRY (k, xmmsv_new_int (v)) 40 #define XMMSV_DICT_END NULL 43 #define XMMSV_LIST_ENTRY(v) __xmmsv_identity_xmmsv (v) 44 #define XMMSV_LIST_ENTRY_STR(v) XMMSV_LIST_ENTRY (__xmmsv_null_to_none (xmmsv_new_string (v))) 45 #define XMMSV_LIST_ENTRY_INT(v) XMMSV_LIST_ENTRY (xmmsv_new_int (v)) 46 #define XMMSV_LIST_ENTRY_COLL(v) XMMSV_LIST_ENTRY (__xmmsv_null_to_none (xmmsv_new_coll (v))) 47 #define XMMSV_LIST_END NULL
xmmsv_t * xmmsv_new_none(void)
Allocates a new empty xmmsv_t.
xmmsv_t * xmmsv_build_list_va(xmmsv_t *first_entry, va_list ap)
xmmsv_t * xmmsv_build_dict(const char *firstkey,...)
xmmsv_t * xmmsv_build_list(xmmsv_t *first_entry,...)