summaryrefslogtreecommitdiff
path: root/src/enum.hh
diff options
context:
space:
mode:
Diffstat (limited to 'src/enum.hh')
-rw-r--r--src/enum.hh9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/enum.hh b/src/enum.hh
index 6f4a4bdb..01f89b32 100644
--- a/src/enum.hh
+++ b/src/enum.hh
@@ -73,6 +73,15 @@ EnableIfWithoutBitOps<Enum> option_from_string(StringView str, Enum& e)
e = it->value;
}
+template<typename Flags, typename = decltype(enum_desc(Flags{}))>
+EnableIfWithBitOps<Flags, bool> option_add(Flags& opt, StringView str)
+{
+ Flags res = Flags{};
+ option_from_string(str, res);
+ opt |= res;
+ return res != (Flags)0;
+}
+
}
#endif // enum_hh_INCLUDED