mirror of
https://github.com/orange-cpp/omath.git
synced 2026-06-10 17:24:35 +00:00
incremented version + improved naming
This commit is contained in:
@@ -19,7 +19,7 @@ namespace omath
|
||||
scan_for_pattern_in_loaded_module(const void* module_base_address, const std::string_view& pattern,
|
||||
const std::string_view& target_section_name = ".text");
|
||||
|
||||
template<PatternScanner::fixed_string Pattern>
|
||||
template<PatternScanner::ConstevalPattern Pattern>
|
||||
[[nodiscard]]
|
||||
static std::optional<std::uintptr_t>
|
||||
scan_for_pattern_in_loaded_module(const void* module_base_address,
|
||||
@@ -34,7 +34,7 @@ namespace omath
|
||||
scan_for_pattern_in_file(const std::filesystem::path& path_to_file, const std::string_view& pattern,
|
||||
const std::string_view& target_section_name = ".text");
|
||||
|
||||
template<PatternScanner::fixed_string Pattern>
|
||||
template<PatternScanner::ConstevalPattern Pattern>
|
||||
[[nodiscard]]
|
||||
static std::optional<SectionScanResult>
|
||||
scan_for_pattern_in_file(const std::filesystem::path& path_to_file,
|
||||
@@ -49,7 +49,7 @@ namespace omath
|
||||
scan_for_pattern_in_memory_file(std::span<const std::byte> file_data, const std::string_view& pattern,
|
||||
const std::string_view& target_section_name = ".text");
|
||||
|
||||
template<PatternScanner::fixed_string Pattern>
|
||||
template<PatternScanner::ConstevalPattern Pattern>
|
||||
[[nodiscard]]
|
||||
static std::optional<SectionScanResult>
|
||||
scan_for_pattern_in_memory_file(std::span<const std::byte> file_data,
|
||||
@@ -62,7 +62,7 @@ namespace omath
|
||||
private:
|
||||
using SectionScanFunction = std::optional<std::ptrdiff_t> (*)(std::span<const std::byte>);
|
||||
|
||||
template<PatternScanner::fixed_string Pattern>
|
||||
template<PatternScanner::ConstevalPattern Pattern>
|
||||
[[nodiscard]]
|
||||
static std::optional<std::ptrdiff_t> scan_section_for_pattern(const std::span<const std::byte> section_data)
|
||||
{
|
||||
|
||||
@@ -19,7 +19,7 @@ namespace omath
|
||||
scan_for_pattern_in_loaded_module(const void* module_base_address, const std::string_view& pattern,
|
||||
const std::string_view& target_section_name = "__text");
|
||||
|
||||
template<PatternScanner::fixed_string Pattern>
|
||||
template<PatternScanner::ConstevalPattern Pattern>
|
||||
[[nodiscard]]
|
||||
static std::optional<std::uintptr_t>
|
||||
scan_for_pattern_in_loaded_module(const void* module_base_address,
|
||||
@@ -34,7 +34,7 @@ namespace omath
|
||||
scan_for_pattern_in_file(const std::filesystem::path& path_to_file, const std::string_view& pattern,
|
||||
const std::string_view& target_section_name = "__text");
|
||||
|
||||
template<PatternScanner::fixed_string Pattern>
|
||||
template<PatternScanner::ConstevalPattern Pattern>
|
||||
[[nodiscard]]
|
||||
static std::optional<SectionScanResult>
|
||||
scan_for_pattern_in_file(const std::filesystem::path& path_to_file,
|
||||
@@ -49,7 +49,7 @@ namespace omath
|
||||
scan_for_pattern_in_memory_file(std::span<const std::byte> file_data, const std::string_view& pattern,
|
||||
const std::string_view& target_section_name = "__text");
|
||||
|
||||
template<PatternScanner::fixed_string Pattern>
|
||||
template<PatternScanner::ConstevalPattern Pattern>
|
||||
[[nodiscard]]
|
||||
static std::optional<SectionScanResult>
|
||||
scan_for_pattern_in_memory_file(std::span<const std::byte> file_data,
|
||||
@@ -62,7 +62,7 @@ namespace omath
|
||||
private:
|
||||
using SectionScanFunction = std::optional<std::ptrdiff_t> (*)(std::span<const std::byte>);
|
||||
|
||||
template<PatternScanner::fixed_string Pattern>
|
||||
template<PatternScanner::ConstevalPattern Pattern>
|
||||
[[nodiscard]]
|
||||
static std::optional<std::ptrdiff_t> scan_section_for_pattern(const std::span<const std::byte> section_data)
|
||||
{
|
||||
|
||||
@@ -39,11 +39,12 @@ namespace omath
|
||||
|
||||
public:
|
||||
template<std::size_t N>
|
||||
struct fixed_string final
|
||||
struct ConstevalPattern final
|
||||
{
|
||||
char value[N]{};
|
||||
|
||||
constexpr fixed_string(const char (&text)[N])
|
||||
// ReSharper disable once CppNonExplicitConvertingConstructor
|
||||
constexpr ConstevalPattern(const char (&text)[N]) // NOLINT(*-explicit-constructor)
|
||||
{
|
||||
std::ranges::copy(text, value);
|
||||
}
|
||||
@@ -69,7 +70,7 @@ namespace omath
|
||||
|
||||
return scan_for_parsed_pattern(begin, end, parsed_pattern.value());
|
||||
}
|
||||
template<fixed_string Pattern, class IteratorType>
|
||||
template<ConstevalPattern Pattern, class IteratorType>
|
||||
requires std::input_or_output_iterator<std::remove_cvref_t<IteratorType>>
|
||||
static IteratorType scan_for_pattern(const IteratorType& begin, const IteratorType& end)
|
||||
{
|
||||
@@ -129,7 +130,7 @@ namespace omath
|
||||
return c - 'a' + 10;
|
||||
return -1;
|
||||
}
|
||||
template<fixed_string Pattern>
|
||||
template<ConstevalPattern Pattern>
|
||||
[[nodiscard]]
|
||||
static consteval std::size_t signature_size()
|
||||
{
|
||||
@@ -152,7 +153,7 @@ namespace omath
|
||||
return count;
|
||||
}
|
||||
|
||||
template<fixed_string Pattern>
|
||||
template<ConstevalPattern Pattern>
|
||||
static consteval std::array<std::optional<std::byte>, signature_size<Pattern>()> parse_pattern()
|
||||
{
|
||||
std::array<std::optional<std::byte>, signature_size<Pattern>()> result{};
|
||||
|
||||
@@ -21,7 +21,7 @@ namespace omath
|
||||
scan_for_pattern_in_loaded_module(const void* module_base_address, const std::string_view& pattern,
|
||||
const std::string_view& target_section_name = ".text");
|
||||
|
||||
template<PatternScanner::fixed_string Pattern>
|
||||
template<PatternScanner::ConstevalPattern Pattern>
|
||||
[[nodiscard]]
|
||||
static std::optional<std::uintptr_t>
|
||||
scan_for_pattern_in_loaded_module(const void* module_base_address,
|
||||
@@ -36,7 +36,7 @@ namespace omath
|
||||
scan_for_pattern_in_file(const std::filesystem::path& path_to_file, const std::string_view& pattern,
|
||||
const std::string_view& target_section_name = ".text");
|
||||
|
||||
template<PatternScanner::fixed_string Pattern>
|
||||
template<PatternScanner::ConstevalPattern Pattern>
|
||||
[[nodiscard]]
|
||||
static std::optional<SectionScanResult>
|
||||
scan_for_pattern_in_file(const std::filesystem::path& path_to_file,
|
||||
@@ -51,7 +51,7 @@ namespace omath
|
||||
scan_for_pattern_in_memory_file(std::span<const std::byte> file_data, const std::string_view& pattern,
|
||||
const std::string_view& target_section_name = ".text");
|
||||
|
||||
template<PatternScanner::fixed_string Pattern>
|
||||
template<PatternScanner::ConstevalPattern Pattern>
|
||||
[[nodiscard]]
|
||||
static std::optional<SectionScanResult>
|
||||
scan_for_pattern_in_memory_file(std::span<const std::byte> file_data,
|
||||
@@ -64,7 +64,7 @@ namespace omath
|
||||
private:
|
||||
using SectionScanFunction = std::optional<std::ptrdiff_t> (*)(std::span<const std::byte>);
|
||||
|
||||
template<PatternScanner::fixed_string Pattern>
|
||||
template<PatternScanner::ConstevalPattern Pattern>
|
||||
[[nodiscard]]
|
||||
static std::optional<std::ptrdiff_t> scan_section_for_pattern(const std::span<const std::byte> section_data)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user