diff options
| author | Jonathan Bradley <jcb@pikum.xyz> | 2025-05-28 17:11:25 -0400 |
|---|---|---|
| committer | Jonathan Bradley <jcb@pikum.xyz> | 2025-05-28 17:11:25 -0400 |
| commit | 41eec42394ad2df6ad5cd6d400e950d17184bb00 (patch) | |
| tree | 196299a17d69eb3163d6c95e29a4b65c9f4cf692 | |
| parent | 5de82baf576996a85c9adc808f14d0c9f9cff3b3 (diff) | |
pkbktarr: handle: MAX + ==operator
| -rw-r--r-- | pkbktarr.h | 12 | ||||
| -rw-r--r-- | test/pkbktarr.c | 26 | ||||
| -rw-r--r-- | test/pkbktarr.cpp | 15 |
3 files changed, 21 insertions, 32 deletions
@@ -18,6 +18,18 @@ struct pk_bkt_arr_handle { unsigned int i : 8; }; +#if ! defined(__cplusplus) +#define pk_bkt_arr_handle_MAX ((struct pk_bkt_arr_handle){ .b = PK_BKT_ARR_HANDLE_B_MAX, .i = PK_BKT_ARR_HANDLE_I_MAX }) +#else +#define pk_bkt_arr_handle_MAX (pk_bkt_arr_handle{ .b = PK_BKT_ARR_HANDLE_B_MAX, .i = PK_BKT_ARR_HANDLE_I_MAX }) +constexpr struct pk_bkt_arr_handle pk_bkt_arr_handle_MAX_constexpr = pk_bkt_arr_handle_MAX; +inline constexpr bool +operator==(const pk_bkt_arr_handle &lhs, const pk_bkt_arr_handle &rhs) +{ + return lhs.b == rhs.b && lhs.i == rhs.i; +} +#endif + struct pk_bkt_arr { struct pk_membucket *bkt_buckets; struct pk_membucket *bkt_data; diff --git a/test/pkbktarr.c b/test/pkbktarr.c index 9a93b4c..cb39651 100644 --- a/test/pkbktarr.c +++ b/test/pkbktarr.c @@ -111,10 +111,7 @@ int main(int argc, char *argv[]) assert(bkt_buckets != nullptr); assert(bkt_data != nullptr); struct pk_bkt_arr arr = {0}; - struct pk_bkt_arr_handle limits; - limits.b = PK_BKT_ARR_HANDLE_B_MAX; - limits.i = PK_BKT_ARR_HANDLE_I_MAX; - pk_bkt_arr_init(&arr, sizeof(int), alignof(int), limits, bkt_buckets, bkt_data); + pk_bkt_arr_init(&arr, sizeof(int), alignof(int), pk_bkt_arr_handle_MAX, bkt_buckets, bkt_data); struct pk_bkt_arr_handle h = pk_bkt_arr_new_handle(&arr); if (h.b != 0) exit(1); @@ -146,10 +143,7 @@ int main(int argc, char *argv[]) assert(bkt_buckets != nullptr); assert(bkt_data != nullptr); struct pk_bkt_arr arr = {0}; - struct pk_bkt_arr_handle limits; - limits.b = PK_BKT_ARR_HANDLE_B_MAX; - limits.i = PK_BKT_ARR_HANDLE_I_MAX; - pk_bkt_arr_init(&arr, sizeof(int), alignof(int), limits, bkt_buckets, bkt_data); + pk_bkt_arr_init(&arr, sizeof(int), alignof(int), pk_bkt_arr_handle_MAX, bkt_buckets, bkt_data); struct pk_bkt_arr_handle h = pk_bkt_arr_new_handle(&arr); if (h.b != 0) exit(1); @@ -191,10 +185,7 @@ int main(int argc, char *argv[]) assert(bkt_buckets != nullptr); assert(bkt_data != nullptr); struct pk_bkt_arr arr = {0}; - struct pk_bkt_arr_handle limits; - limits.b = PK_BKT_ARR_HANDLE_B_MAX; - limits.i = PK_BKT_ARR_HANDLE_I_MAX; - pk_bkt_arr_init(&arr, sizeof(int), alignof(int), limits, bkt_buckets, bkt_data); + pk_bkt_arr_init(&arr, sizeof(int), alignof(int), pk_bkt_arr_handle_MAX, bkt_buckets, bkt_data); struct pk_bkt_arr_handle h = pk_bkt_arr_new_handle(&arr); if (h.b != 0) exit(1); @@ -223,10 +214,7 @@ int main(int argc, char *argv[]) assert(bkt_buckets != nullptr); assert(bkt_data != nullptr); struct pk_bkt_arr arr = {0}; - struct pk_bkt_arr_handle limits; - limits.b = PK_BKT_ARR_HANDLE_B_MAX; - limits.i = PK_BKT_ARR_HANDLE_I_MAX; - pk_bkt_arr_init(&arr, sizeof(int), alignof(int), limits, bkt_buckets, bkt_data); + pk_bkt_arr_init(&arr, sizeof(int), alignof(int), pk_bkt_arr_handle_MAX, bkt_buckets, bkt_data); struct pk_bkt_arr_handle h = pk_bkt_arr_new_handle(&arr); if (h.b != 0) exit(1); @@ -253,10 +241,8 @@ int main(int argc, char *argv[]) assert(bkt_buckets != nullptr); assert(bkt_data != nullptr); struct pk_bkt_arr arr = {0}; - struct pk_bkt_arr_handle h1, h2, limits; - limits.b = PK_BKT_ARR_HANDLE_B_MAX; - limits.i = PK_BKT_ARR_HANDLE_I_MAX; - pk_bkt_arr_init(&arr, sizeof(int), alignof(int), limits, bkt_buckets, bkt_data); + struct pk_bkt_arr_handle h1, h2; + pk_bkt_arr_init(&arr, sizeof(int), alignof(int), pk_bkt_arr_handle_MAX, bkt_buckets, bkt_data); h1 = pk_bkt_arr_new_handle(&arr); h2 = pk_bkt_arr_new_handle(&arr); diff --git a/test/pkbktarr.cpp b/test/pkbktarr.cpp index 2069c8b..e152537 100644 --- a/test/pkbktarr.cpp +++ b/test/pkbktarr.cpp @@ -32,10 +32,7 @@ int main(int argc, char *argv[]) { assert(bkt_buckets != nullptr); assert(bkt_data != nullptr); - struct pk_bkt_arr_handle limits; - limits.b = PK_BKT_ARR_HANDLE_B_MAX; - limits.i = PK_BKT_ARR_HANDLE_I_MAX; - struct pk_bkt_arr_t<int> arr(limits, bkt_buckets, bkt_data); + struct pk_bkt_arr_t<int> arr(pk_bkt_arr_handle_MAX_constexpr, bkt_buckets, bkt_data); struct pk_bkt_arr_handle h = pk_bkt_arr_new_handle(&arr); arr[h] = 128; @@ -70,10 +67,7 @@ int main(int argc, char *argv[]) { assert(bkt_buckets != nullptr); assert(bkt_data != nullptr); - struct pk_bkt_arr_handle limits; - limits.b = PK_BKT_ARR_HANDLE_B_MAX; - limits.i = PK_BKT_ARR_HANDLE_I_MAX; - struct pk_bkt_arr_t<int> arr(limits, bkt_buckets, bkt_data); + struct pk_bkt_arr_t<int> arr(pk_bkt_arr_handle_MAX_constexpr, bkt_buckets, bkt_data); int val = 128; struct pk_bkt_arr_handle h = pk_bkt_arr_new_handle(&arr); @@ -109,10 +103,7 @@ int main(int argc, char *argv[]) { assert(bkt_buckets != nullptr); assert(bkt_data != nullptr); - struct pk_bkt_arr_handle limits; - limits.b = PK_BKT_ARR_HANDLE_B_MAX; - limits.i = PK_BKT_ARR_HANDLE_I_MAX; - struct pk_bkt_arr_t<int> arr(limits, bkt_buckets, bkt_data); + struct pk_bkt_arr_t<int> arr(pk_bkt_arr_handle_MAX_constexpr, bkt_buckets, bkt_data); int val = 128; struct pk_bkt_arr_handle h = pk_bkt_arr_new_handle(&arr); |
