mirror of
https://github.com/mailscope/kumomta.git
synced 2026-08-23 04:38:17 +00:00
42bf5c5e61
We've been hoping that mkdocs-material will ship the much anticipated search enhancements for some time, but it's time to recognize that we need to do something to improve the search results with how things work right now. This is a big commit that changes the titles of the various pages from the code-annotated synopsis to just the name of the function. This makes it much easier now to match things like `kumo.reject` directly, but `reject` remains awkward to find. I think this is the best that we can do at this time. A few functions have been annotated with the `status: deprecated` to show as deprecated in the toc/nav (shows with a little trash can next to the name).
1.0 KiB
1.0 KiB
kumo.regex_set_map.new
kumo.regex_set_map.new([{MAP}])
{{since('2023.11.28-b5252a41')}}
Create a new regex set map from a set of key/value pairs.
A regex set can efficiently match a haystack string against a list of multiple regular expressions in a single search operation. The search operation on the regex set knows which regular expression matched, and that is used here to map to a more meaningful value.
Since the regex set needs to be compiled, the set is considered to be
immutable; it cannot have entries added after it has been created,
so you need to build up a lua table with the mapping to pass to new.
-- This example categorizes text into either 'hello', 'bye' results
local map = kumo.regex_set_map.new {
hello = 'hello',
bye = 'bye',
later = 'bye',
-- more complex patterns need to quote the map key:
['Good day'] = 'hello',
}
assert(map['hello there'] == 'hello')
assert(map['goodbye'] == 'bye')
assert(map['see you later'] == 'bye')
assert(map['not.set'] == nil)