Compare commits

...

3 Commits

Author SHA1 Message Date
Daniel Lemire a927fb0129 bump 2024-10-09 21:16:23 -04:00
Daniel Lemire c6fbf5bf78 moving SIMDJSON_SUPPORTS_EXTRACT 2024-10-09 20:54:24 -04:00
M. Bahoosh cf86e30b71 Merge pull request #2 from simdjson/extractor_clangcl
extractor PR with clangcl tweaks
2024-09-24 11:53:52 -07:00
6 changed files with 19 additions and 7 deletions
+1 -1
View File
@@ -17,7 +17,7 @@ jobs:
fuzz-seconds: 600 fuzz-seconds: 600
dry-run: false dry-run: false
- name: Upload Crash - name: Upload Crash
uses: actions/upload-artifact@v1 uses: actions/upload-artifact@v3
if: failure() && steps.build.outcome == 'success' if: failure() && steps.build.outcome == 'success'
with: with:
name: artifacts name: artifacts
@@ -24,7 +24,7 @@ jobs:
echo "no trailing whitespace found, good!" echo "no trailing whitespace found, good!"
fi fi
- name: Archive whitespace patch - name: Archive whitespace patch
uses: actions/upload-artifact@v2 uses: actions/upload-artifact@v3
if: always() if: always()
with: with:
name: whitespace-patch name: whitespace-patch
@@ -45,7 +45,6 @@ BENCHMARK_TEMPLATE(partial_tweets, simdjson_ondemand)->UseManualTime();
#if SIMDJSON_SUPPORTS_EXTRACT #if SIMDJSON_SUPPORTS_EXTRACT
using namespace simdjson::ondemand; using namespace simdjson::ondemand;
struct simdjson_ondemand_extract { struct simdjson_ondemand_extract {
+14
View File
@@ -50,4 +50,18 @@
#endif #endif
#endif #endif
#ifdef __has_include
#if __has_include(<version>)
#include <version>
#endif
#endif
#if defined(__cpp_concepts)
#define SIMDJSON_SUPPORTS_EXTRACT 1
#else
#define SIMDJSON_SUPPORTS_EXTRACT 0
#endif
#endif // SIMDJSON_COMPILER_CHECK_H #endif // SIMDJSON_COMPILER_CHECK_H
@@ -16,7 +16,7 @@ namespace SIMDJSON_IMPLEMENTATION {
namespace ondemand { namespace ondemand {
#ifdef SIMDJSON_SUPPORTS_EXTRACT #if SIMDJSON_SUPPORTS_EXTRACT
#if SIMDJSON_REGULAR_VISUAL_STUDIO #if SIMDJSON_REGULAR_VISUAL_STUDIO
+2 -3
View File
@@ -11,8 +11,7 @@ namespace simdjson {
namespace SIMDJSON_IMPLEMENTATION { namespace SIMDJSON_IMPLEMENTATION {
namespace ondemand { namespace ondemand {
#if defined(__cpp_concepts) && defined(__cpp_consteval) #if SIMDJSON_SUPPORTS_EXTRACT
#define SIMDJSON_SUPPORTS_EXTRACT 1
template <typename T> template <typename T>
concept endpoint = std::is_invocable_r_v<error_code, T, simdjson_result<value>> && concept endpoint = std::is_invocable_r_v<error_code, T, simdjson_result<value>> &&
@@ -79,7 +78,7 @@ public:
/** @overload simdjson_inline simdjson_result<value> find_field(std::string_view key) & noexcept; */ /** @overload simdjson_inline simdjson_result<value> find_field(std::string_view key) & noexcept; */
simdjson_inline simdjson_result<value> find_field(std::string_view key) && noexcept; simdjson_inline simdjson_result<value> find_field(std::string_view key) && noexcept;
#ifdef SIMDJSON_SUPPORTS_EXTRACT #if SIMDJSON_SUPPORTS_EXTRACT
/** /**
* Extract all the fields in one go * Extract all the fields in one go
* Funcs are invocables that take a simdjson_result<value> as input. * Funcs are invocables that take a simdjson_result<value> as input.