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 +}