diff options
author | Rebecca Turner <rbt@sent.as> | 2024-03-09 14:00:43 -0800 |
---|---|---|
committer | Rebecca Turner <rbt@sent.as> | 2024-04-07 18:22:15 -0700 |
commit | 6f863e8ccd44342e7650f612b46893b605755000 (patch) | |
tree | 349b2f44a3303cd4e9e65db3edd5f17bdfddcce4 /src/libutil/config.hh | |
parent | 06e11778b594931b24d256a0a68ccea6533c6b48 (diff) |
Add `PathsSetting`
Change-Id: I1165f6ef033a5f757ca3716d3f8008ba36b01fd0
Diffstat (limited to 'src/libutil/config.hh')
-rw-r--r-- | src/libutil/config.hh | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/libutil/config.hh b/src/libutil/config.hh index 3e232d224..01e1239b3 100644 --- a/src/libutil/config.hh +++ b/src/libutil/config.hh @@ -375,6 +375,26 @@ public: void operator =(const std::optional<Path> & v); }; +/** + * Like `OptionalPathSetting`, but allows multiple paths. + */ +class PathsSetting : public BaseSetting<Paths> +{ +public: + + PathsSetting(Config * options, + const Paths & def, + const std::string & name, + const std::string & description, + const std::set<std::string> & aliases = {}); + + Paths parse(const std::string & str) const override; + + void operator =(const Paths & v); + + operator bool() const noexcept; +}; + struct GlobalConfig : public AbstractConfig { typedef std::vector<Config*> ConfigRegistrations; |