From 880a9873a48ff1d6fd48fcc61f232dcf4c870ccd Mon Sep 17 00:00:00 2001 From: kbkpbot Date: Mon, 14 Apr 2025 00:25:32 +0800 Subject: [PATCH] datatypes: add a Set.array/0 method to help get all the elements from a set as an array (#24206) --- vlib/datatypes/set.v | 5 +++++ vlib/datatypes/set_test.v | 6 ++++++ 2 files changed, 11 insertions(+) diff --git a/vlib/datatypes/set.v b/vlib/datatypes/set.v index c6ca0b67ba..fc0600e895 100644 --- a/vlib/datatypes/set.v +++ b/vlib/datatypes/set.v @@ -128,3 +128,8 @@ pub fn (l Set[T]) subset(r Set[T]) bool { } return true } + +// array returns an array representation of the set +pub fn (l Set[T]) array() []T { + return l.elements.keys() +} diff --git a/vlib/datatypes/set_test.v b/vlib/datatypes/set_test.v index bf7b008084..761ad3c4ac 100644 --- a/vlib/datatypes/set_test.v +++ b/vlib/datatypes/set_test.v @@ -131,3 +131,9 @@ fn test_subset() { subset.add_all(['b', 'c']) assert set.subset(subset) } + +fn test_array() { + mut set := Set[string]{} + set.add_all(['a', 'b', 'c']) + assert set.array().len == 3 +}