6#include <nlohmann/json.hpp>
38 return "Invalid request";
40 return "Method not found";
42 return "Invalid parameters";
44 return "Internal error";
46 return "Server error";
48 return "Transport error";
50 return "Timeout error";
52 return "Client error";
54 return "Client serialization error";
56 return "Client deserialization error";
58 return "Unknown error";
67 : code_(code), message_(std::move(message)) {
72 json[
"code"] =
static_cast<int>(
Code());
81 [[nodiscard]]
auto Message() const -> std::
string {
86 return Code() == other.Code() &&
Message() == other.Message();
90 return !(*
this == other);
95 if (message.empty()) {
98 return {code, std::move(message)};
102 -> std::unexpected<RpcError> {
108 std::string message_;
111inline auto Ok() -> std::expected<void, RpcError> {
auto operator==(const RpcError &other) const -> bool
auto operator!=(const RpcError &other) const -> bool
static auto FromCode(RpcErrorCode code, std::string message="") -> RpcError
auto to_json() const -> nlohmann::json
auto Code() const -> RpcErrorCode
auto Message() const -> std::string
RpcError(RpcErrorCode code, std::string message)
static auto UnexpectedFromCode(RpcErrorCode code, std::string message="") -> std::unexpected< RpcError >
auto DefaultMessageFor(RpcErrorCode code) -> std::string_view
auto Ok() -> std::expected< void, RpcError >
@ kClientDeserializationError
@ kClientSerializationError