dynamic_array.h v0.3.1
Reference-counted dynamic arrays for C
|
Convenient type-safe macros for builder operations. More...
Macros | |
#define | DA_BUILDER_CREATE(T) da_builder_create(sizeof(T)) |
Type-safe builder creation. | |
#define | DA_BUILDER_APPEND_TYPED(builder, val, T) do { T _temp = (val); da_builder_append(builder, (void*)&_temp); } while(0) |
Type-safe element append to builder with explicit type parameter. | |
#define | DA_BUILDER_PUT_TYPED(builder, i, val, T) do { T _temp = (val); da_builder_set(builder, i, (void*)&_temp); } while(0) |
Type-safe element assignment in builder with explicit type parameter. | |
#define | DA_BUILDER_APPEND(builder, val, T) DA_BUILDER_APPEND_TYPED(builder, val, T) |
Type-safe element append to builder (adaptive macro) | |
#define | DA_BUILDER_PUT(builder, i, val, T) DA_BUILDER_PUT_TYPED(builder, i, val, T) |
Type-safe element assignment in builder (adaptive macro) | |
#define | DA_BUILDER_AT(builder, i, T) (*(T*)da_builder_get(builder, i)) |
Type-safe element access by value from builder. | |
#define | DA_BUILDER_LEN(builder) da_builder_length(builder) |
Get builder length (shorthand for da_builder_length) | |
#define | DA_BUILDER_CAP(builder) da_builder_capacity(builder) |
Get builder capacity (shorthand for da_builder_capacity) | |
#define | DA_BUILDER_CLEAR(builder) da_builder_clear(builder) |
Clear builder (shorthand for da_builder_clear) | |
#define | DA_BUILDER_TO_ARRAY(builder) da_builder_to_array(builder, NULL, NULL) |
Convert builder to array (shorthand for da_builder_to_array) | |
Convenient type-safe macros for builder operations.
#define DA_BUILDER_APPEND | ( | builder, | |
val, | |||
T | |||
) | DA_BUILDER_APPEND_TYPED(builder, val, T) |
Type-safe element append to builder (adaptive macro)
builder | Builder to modify |
val | Value to append |
T | Type parameter (only when DA_SUPPORT_TYPE_INFERENCE=0 or DA_NOT_USE_TYPE_GENERIC is defined) |
#define DA_BUILDER_APPEND_TYPED | ( | builder, | |
val, | |||
T | |||
) | do { T _temp = (val); da_builder_append(builder, (void*)&_temp); } while(0) |
Type-safe element append to builder with explicit type parameter.
builder | Builder to modify |
val | Value to append |
T | Explicit type of the value |
#define DA_BUILDER_AT | ( | builder, | |
i, | |||
T | |||
) | (*(T*)da_builder_get(builder, i)) |
Type-safe element access by value from builder.
builder | Builder to access |
i | Index to get |
T | Element type |
#define DA_BUILDER_CREATE | ( | T | ) | da_builder_create(sizeof(T)) |
Type-safe builder creation.
T | Element type (e.g., int, float, struct mytype) |
#define DA_BUILDER_PUT | ( | builder, | |
i, | |||
val, | |||
T | |||
) | DA_BUILDER_PUT_TYPED(builder, i, val, T) |
Type-safe element assignment in builder (adaptive macro)
builder | Builder to modify |
i | Index to set |
val | Value to assign |
T | Type parameter (only when DA_SUPPORT_TYPE_INFERENCE=0 or DA_NOT_USE_TYPE_GENERIC is defined) |
#define DA_BUILDER_PUT_TYPED | ( | builder, | |
i, | |||
val, | |||
T | |||
) | do { T _temp = (val); da_builder_set(builder, i, (void*)&_temp); } while(0) |
Type-safe element assignment in builder with explicit type parameter.
builder | Builder to modify |
i | Index to set |
val | Value to assign |
T | Explicit type of the value |