diff --git a/morphisms/runtime/include/array/length-prefix.h b/morphisms/runtime/include/array/length-prefix.h index 9017950..35a4aec 100644 --- a/morphisms/runtime/include/array/length-prefix.h +++ b/morphisms/runtime/include/array/length-prefix.h @@ -3,7 +3,6 @@ #include <stdio.h> #include <stdint.h> -// Macro to define length-prefixed array structures and functions #define DEFINE_LENGTH_PREFIX_ARRAY(LEN_TYPE, ITEM_TYPE) \ typedef struct { \ LEN_TYPE len; \ @@ -40,29 +39,18 @@ printf("\n"); \ } +#define DEFINE_ALL_LENGTH_PREFIX_ARRAYS(LEN_TYPE) \ + DEFINE_LENGTH_PREFIX_ARRAY(LEN_TYPE, uint8_t) \ + DEFINE_LENGTH_PREFIX_ARRAY(LEN_TYPE, uint16_t) \ + DEFINE_LENGTH_PREFIX_ARRAY(LEN_TYPE, uint32_t) \ + DEFINE_LENGTH_PREFIX_ARRAY(LEN_TYPE, uint64_t) + +DEFINE_ALL_LENGTH_PREFIX_ARRAYS(uint8_t) +DEFINE_ALL_LENGTH_PREFIX_ARRAYS(uint16_t) +DEFINE_ALL_LENGTH_PREFIX_ARRAYS(uint32_t) +DEFINE_ALL_LENGTH_PREFIX_ARRAYS(uint64_t) -// Define all combinations of length and item types -DEFINE_LENGTH_PREFIX_ARRAY(uint8_t, uint8_t) -DEFINE_LENGTH_PREFIX_ARRAY(uint8_t, uint16_t) -DEFINE_LENGTH_PREFIX_ARRAY(uint8_t, uint32_t) -DEFINE_LENGTH_PREFIX_ARRAY(uint8_t, uint64_t) -DEFINE_LENGTH_PREFIX_ARRAY(uint16_t, uint8_t) -DEFINE_LENGTH_PREFIX_ARRAY(uint16_t, uint16_t) -DEFINE_LENGTH_PREFIX_ARRAY(uint16_t, uint32_t) -DEFINE_LENGTH_PREFIX_ARRAY(uint16_t, uint64_t) -DEFINE_LENGTH_PREFIX_ARRAY(uint32_t, uint8_t) -DEFINE_LENGTH_PREFIX_ARRAY(uint32_t, uint16_t) -DEFINE_LENGTH_PREFIX_ARRAY(uint32_t, uint32_t) -DEFINE_LENGTH_PREFIX_ARRAY(uint32_t, uint64_t) -DEFINE_LENGTH_PREFIX_ARRAY(uint64_t, uint8_t) -DEFINE_LENGTH_PREFIX_ARRAY(uint64_t, uint16_t) -DEFINE_LENGTH_PREFIX_ARRAY(uint64_t, uint32_t) -DEFINE_LENGTH_PREFIX_ARRAY(uint64_t, uint64_t) -/* - * Map - */ -// Macro to define map function between different item types #define DEFINE_LENGTH_PREFIX_ARRAY_MAP(LEN_TYPE, SRC_ITEM_TYPE, DST_ITEM_TYPE) \ static inline int length_prefix_##LEN_TYPE##_array_map_##SRC_ITEM_TYPE##_to_##DST_ITEM_TYPE( \ int (*f)(SRC_ITEM_TYPE const * restrict, DST_ITEM_TYPE * restrict), \ @@ -78,12 +66,12 @@ DEFINE_LENGTH_PREFIX_ARRAY(uint64_t, uint64_t) } #define DEFINE_ALL_MAPS(LEN_TYPE) \ - DEFINE_LENGTH_PREFIX_ARRAY_MAP(LEN_TYPE, uint8_t, uint8_t) \ + DEFINE_LENGTH_PREFIX_ARRAY_MAP(LEN_TYPE, uint8_t, uint8_t) \ DEFINE_LENGTH_PREFIX_ARRAY_MAP(LEN_TYPE, uint8_t, uint16_t) \ DEFINE_LENGTH_PREFIX_ARRAY_MAP(LEN_TYPE, uint8_t, uint32_t) \ DEFINE_LENGTH_PREFIX_ARRAY_MAP(LEN_TYPE, uint8_t, uint64_t) \ DEFINE_LENGTH_PREFIX_ARRAY_MAP(LEN_TYPE, uint16_t, uint8_t) \ - DEFINE_LENGTH_PREFIX_ARRAY_MAP(LEN_TYPE, uint16_t, uint16_t) \ + DEFINE_LENGTH_PREFIX_ARRAY_MAP(LEN_TYPE, uint16_t, uint16_t) \ DEFINE_LENGTH_PREFIX_ARRAY_MAP(LEN_TYPE, uint16_t, uint32_t) \ DEFINE_LENGTH_PREFIX_ARRAY_MAP(LEN_TYPE, uint16_t, uint64_t) \ DEFINE_LENGTH_PREFIX_ARRAY_MAP(LEN_TYPE, uint32_t, uint8_t) \