6#include <nlohmann/json.hpp>
26 static auto FromJson(
const nlohmann::json& json)
27 -> std::expected<Response, error::RpcError>;
30 const nlohmann::json& result,
const std::optional<RequestId>&
id)
34 RpcErrorCode code,
const std::optional<RequestId>&
id = std::nullopt)
38 const RpcError& error,
const std::optional<RequestId>&
id = std::nullopt)
42 const nlohmann::json& error,
const std::optional<RequestId>&
id)
45 [[nodiscard]]
auto IsSuccess() const ->
bool;
56 explicit
Response(
nlohmann::json response) : response_(std::move(response)) {
59 [[nodiscard]]
auto ValidateResponse() const
60 -> std::expected<
void, error::
RpcError>;
69struct adl_serializer<
jsonrpc::endpoint::Response> {
static auto CreateSuccess(const nlohmann::json &result, const std::optional< RequestId > &id) -> Response
auto GetResult() const -> const nlohmann::json &
static auto CreateError(RpcErrorCode code, const std::optional< RequestId > &id=std::nullopt) -> Response
auto GetId() const -> std::optional< RequestId >
auto operator=(const Response &) -> Response &=default
static auto FromJson(const nlohmann::json &json) -> std::expected< Response, error::RpcError >
auto operator=(Response &&other) noexcept -> Response &=default
auto IsSuccess() const -> bool
auto GetError() const -> const nlohmann::json &
Response(Response &&other)=default
Response(const Response &)=default
auto ToJson() const -> nlohmann::json
std::variant< int64_t, std::string > RequestId
static void to_json(json &j, const jsonrpc::endpoint::Response &r)