Make json_callbacks a static class member

This commit is contained in:
2025-08-14 15:01:09 -04:00
parent b3e504a6f9
commit 035bd8b068
2 changed files with 7 additions and 6 deletions

View File

@@ -3,9 +3,8 @@
#include <charconv>
#include <cstring>
namespace {
// Global callbacks for JSON parsing
const WeaselJsonCallbacks json_callbacks = {
const WeaselJsonCallbacks CommitRequest::json_callbacks = {
.on_begin_object = CommitRequest::on_begin_object,
.on_end_object = CommitRequest::on_end_object,
.on_string_data = CommitRequest::on_string_data,
@@ -17,6 +16,8 @@ const WeaselJsonCallbacks json_callbacks = {
.on_false_literal = CommitRequest::on_false_literal,
.on_null_literal = CommitRequest::on_null_literal,
};
namespace {
// Base64 decoding table
constexpr std::array<int, 256> make_base64_decode_table() {
std::array<int, 256> table{};
@@ -387,8 +388,6 @@ bool CommitRequest::parse_json(std::string_view json_str) {
bool CommitRequest::begin_streaming_parse() {
reset();
json_parser_ = WeaselJsonParser_create(64, &json_callbacks, this, 0);
return json_parser_ != nullptr;
}

View File

@@ -103,7 +103,9 @@ private:
std::vector<Precondition, ArenaStlAllocator<Precondition>> preconditions_;
std::vector<Operation, ArenaStlAllocator<Operation>> operations_;
ParserContext parser_context_;
WeaselJsonParser *json_parser_ = nullptr;
WeaselJsonParser *json_parser_ =
WeaselJsonParser_create(64, &json_callbacks, this, 0);
static const WeaselJsonCallbacks json_callbacks;
public:
/**