#pragma once

#include <balancer/client/experimental/base/response_parser.h>

#include <library/cpp/json/json_reader.h>

namespace NHttp::NParsers {
/// Парсер полностью считывает ответ и пытается распарсить тело ответа как json
class TJsonParser: public IResponseParser {
  public:
    using TParsedType = NJson::TJsonValue;

    void Parse(IResponseStream& stream, TInstant deadline, THandler callback) noexcept override;
};

/// Функция возвращает закешированный инстанс класса TJsonParser
TJsonParser& JsonParser();
}
