#pragma once #include #include #include #include struct Matcher { static optional Create(const std::string& search); bool IsMatch(const std::string& value) const; std::string regex_string; std::regex regex; }; // Check multiple |Matcher| instances at the same time. struct GroupMatch { GroupMatch(const std::vector& whitelist, const std::vector& blacklist); bool IsMatch(const std::string& value, std::string* match_failure_reason = nullptr) const; std::vector whitelist; std::vector blacklist; };