#pragma once

#include <cstdint>

#include "commons/commons_byteparser.h"
#include "commons/commons_json_value.h"

struct json_parser : byte_parser
{
    json_value* out;
    uint64_t outSize;
};

INLINE auto JsonParser_Init(json_parser& self, byteview in, span<json_value> jsonStorage)
{
    ByteParser_Init(self, in.data, in.size);
    self.out = jsonStorage.data;
    self.outSize = jsonStorage.size;
}

auto API JsonParser_ParseNext(json_parser& self) -> json_value*;
