aboutsummaryrefslogtreecommitdiff
path: root/builtins/array.h
diff options
context:
space:
mode:
authorBruce Hill <bruce@bruce-hill.com>2024-08-04 13:03:55 -0400
committerBruce Hill <bruce@bruce-hill.com>2024-08-04 13:03:55 -0400
commitadccc5688062271ca6999a15d6c09bd106462704 (patch)
treee98b706908dbc211539b17773a2e16a73c5da041 /builtins/array.h
parent09204f4ce85f49f0b1108223dc271b4405a3c663 (diff)
Switch around some of the logic for array:random() and array:shuffle()
to use Int$random() and return values
Diffstat (limited to 'builtins/array.h')
-rw-r--r--builtins/array.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/builtins/array.h b/builtins/array.h
index c05aeae9..6d5c3015 100644
--- a/builtins/array.h
+++ b/builtins/array.h
@@ -60,6 +60,7 @@ void Array$sort(array_t *arr, closure_t comparison, int64_t padded_item_size);
array_t Array$sorted(array_t arr, closure_t comparison, int64_t padded_item_size);
void Array$shuffle(array_t *arr, int64_t padded_item_size);
void *Array$random(array_t arr);
+#define Array$random_value(arr, t) ({ array_t _arr = arr; if (_arr.length == 0) fail("Cannot get a random value from an empty array!"); *(t*)Array$random(_arr); })
array_t Array$sample(array_t arr, int64_t n, array_t weights, int64_t padded_item_size);
void Array$clear(array_t *array);
void Array$compact(array_t *arr, int64_t padded_item_size);