#pragma once #include #include #include namespace hex { class BinaryPattern { public: BinaryPattern() = default; explicit BinaryPattern(const std::string &pattern); [[nodiscard]] bool isValid() const; [[nodiscard]] u64 getSize() const; [[nodiscard]] bool matches(const std::vector &bytes) const; [[nodiscard]] bool matchesByte(u8 byte, u32 offset) const; struct Pattern { u8 mask, value; }; private: std::vector m_patterns; }; }