X_ARRAY_TYPE
#define X_ARRAY_TYPE(T) \
X_ARRAY_TYPE_NAMED(T, T)
X_ARRAY_TYPE_NAMED
#define X_ARRAY_TYPE_NAMED(T, suffix) \
typedef XArray XArray_##suffix;\
static inline XArray_##suffix *x_array_##suffix##_create(size_t capacity)\
{\
return(XArray_##suffix *)x_array_create(sizeof(T), capacity);\
}\
static inline void x_array_##suffix##_destroy(XArray_##suffix *arr)\
{\
x_array_destroy((XArray *)arr);\
}\
static inline XArrayError x_array_##suffix##_add_ptr(XArray_##suffix *arr, const T *value_ptr)\
{\
return x_array_add((XArray *)arr, (void *)value_ptr);\
}\
static inline XArrayError x_array_##suffix##_add(XArray_##suffix *arr, T value)\
{\
T value_copy=value;\
return x_array_add((XArray *)arr,&value_copy);\
}\
static inline XArrayError x_array_##suffix##_add_range(XArray_##suffix *arr, const T *values, size_t count)\
{\
return x_array_add_range((XArray *)arr, (const void *)values, count);\
}\
static inline XArrayError x_array_##suffix##_insert_ptr(XArray_##suffix *arr, const T *value_ptr, unsigned int index)\
{\
return x_array_insert((XArray *)arr, (void *)value_ptr, index);\
}\
static inline XArrayError x_array_##suffix##_insert(XArray_##suffix *arr, T value, unsigned int index)\
{\
T value_copy=value;\
return x_array_insert((XArray *)arr,&value_copy, index);\
}\
static inline XArrayError x_array_##suffix##_push_ptr(XArray_##suffix *arr, const T *value_ptr)\
{\
return x_array_add((XArray *)arr, (void *)value_ptr);\
}\
static inline XArrayError x_array_##suffix##_push(XArray_##suffix *arr, T value)\
{\
T value_copy=value;\
return x_array_add((XArray *)arr,&value_copy);\
}\
static inline void x_array_##suffix##_pop(XArray_##suffix *arr)\
{\
x_array_pop((XArray *)arr);\
}\
static inline T *x_array_##suffix##_get(XArray_##suffix *arr, unsigned int index)\
{\
return(T *)x_array_get((XArray *)arr, index);\
}\
static inline const T *x_array_##suffix##_get_const(const XArray_##suffix *arr, unsigned int index)\
{\
return(const T *)x_array_get((XArray *)arr, index);\
}\
static inline T *x_array_##suffix##_data(XArray_##suffix *arr)\
{\
return(T *)x_array_data((XArray *)arr);\
}\
static inline const T *x_array_##suffix##_data_const(const XArray_##suffix *arr)\
{\
return(const T *)x_array_data((XArray *)arr);\
}\
static inline T *x_array_##suffix##_back(XArray_##suffix *arr)\
{\
return(T *)x_array_back((XArray *)arr);\
}\
static inline const T *x_array_##suffix##_back_const(const XArray_##suffix *arr)\
{\
return(const T *)x_array_back((XArray *)arr);\
}\
static inline void x_array_##suffix##_clear(XArray_##suffix *arr)\
{\
x_array_clear((XArray *)arr);\
}\
static inline void x_array_##suffix##_delete_at(XArray_##suffix *arr, unsigned int index)\
{\
x_array_delete_at((XArray *)arr, index);\
}\
static inline XArrayError x_array_##suffix##_delete_range(XArray_##suffix *arr, unsigned int start, unsigned int end)\
{\
return x_array_delete_range((XArray *)arr, start, end);\
}\
static inline uint32_t x_array_##suffix##_count(XArray_##suffix *arr)\
{\
return x_array_count((XArray *)arr);\
}\
static inline uint32_t x_array_##suffix##_capacity(XArray_##suffix *arr)\
{\
return x_array_capacity((XArray *)arr);\
}\
static inline bool x_array_##suffix##_is_empty(XArray_##suffix *arr)\
{\
return x_array_is_empty((XArray *)arr);\
}