From 88640e677fa0695783eac68014d7d8d5bc42d117 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Mon, 19 Feb 2024 12:23:10 +0200 Subject: Add string_set buildfile value type This exposes the std::set type to buildfiles. New functions: $size() Subscript returns true if the value is present and false otherwise (so it is mapped to std::set::contains()). For example: set = [string_set] a b c if ($set[b]) ... Note that append (+=) and prepend (=+) have the same semantics (std::set::insert()). For example: set = [string_set] a b set += c b # a b c set =+ d b # a b c d Example of iteration: set = [string_set] a b c for k: $set ... --- tests/function/string/testscript | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'tests/function/string') diff --git a/tests/function/string/testscript b/tests/function/string/testscript index a363cc3..96f5c52 100644 --- a/tests/function/string/testscript +++ b/tests/function/string/testscript @@ -46,7 +46,8 @@ $* <'print $size([string] abc)' >'3' : basics $* <'print $size([string] )' >'0' : zero $* <'print $size([strings] a b c)' >'3' : strings - $* <'print $size([string_map] a@1 b@2 c@3)' >'3' : string_map + $* <'print $size([string_set] a b b)' >'2' : string-set + $* <'print $size([string_map] a@1 b@2 b@3)' >'2' : string-map } : find -- cgit v1.1