summaryrefslogtreecommitdiff
path: root/src/desktop/rule/matchEngine/RegexMatchEngine.hpp
blob: e980ce7091b4a4768800b109264d1fc2cfa0f552 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#pragma once

#include "MatchEngine.hpp"
#include "../../../helpers/memory/Memory.hpp"

//NOLINTNEXTLINE
namespace re2 {
    class RE2;
};

namespace Desktop::Rule {
    class CRegexMatchEngine : public IMatchEngine {
      public:
        CRegexMatchEngine(const std::string& regex);
        virtual ~CRegexMatchEngine() = default;

        virtual bool match(const std::string& other);

      private:
        UP<re2::RE2> m_regex;
        bool         m_negative = false;
    };
}