Elektra
0.8.19
|
The enum plugin checks string values of Keys by comparing it against a list of valid values.
The plugin checks every Key in the Keyset for the Metakey check/enum
containing a list with the syntax `'string1', 'string2', 'string3', ..., 'stringN'` and compares each value with the string value of the Key. If no match is found an error is returned.
Alternatively, if check/enum
starts with #
, a meta array check/enum
is used. For example:
check/enum = #3 check/enum/#0 = small check/enum/#1 = middle check/enum/#2 = large check/enum/#3 = huge
Furthermore check/enum/multi
may contain a separator character, that separates multiple allowed occurrences. For example:
check/enum/multi = _
Then the value middle_small
would validate. But middle_small_small
would fail because every entry might only occur once.
```
sudo kdb mount enum.ecf /examples/enum enum dump #
# kdb set /examples/enum/value middle kdb setmeta user/examples/enum/value check/enum "'low', 'middle', 'high'" #
# kdb set /examples/enum/value low #
# kdb set /examples/enum/value no
#
# kdb rm -r /examples/enum sudo kdb umount /examples/enum ``` Or with multi-enums: ```
sudo kdb mount enum.ecf /examples/enum enum dump #
# kdb set /examples/enum/value middle_small kdb setmeta user/examples/enum/value check/enum/#0 small kdb setmeta user/examples/enum/value check/enum/#1 middle kdb setmeta user/examples/enum/value check/enum/#2 large kdb setmeta user/examples/enum/value check/enum/#3 huge kdb setmeta user/examples/enum/value check/enum/multi _ kdb setmeta user/examples/enum/value check/enum "#3" #
# kdb set /examples/enum/value ___small_middle__ #
# kdb set /examples/enum/value ___all_small__
#
# kdb rm -r /examples/enum sudo kdb umount /examples/enum ```