From b42d5d86b9f4a803bbdc84fcdd6a5a9f4127516c Mon Sep 17 00:00:00 2001 From: Jonas Braun Date: Tue, 25 Nov 2025 23:46:21 +0100 Subject: [PATCH 1/4] Fix msvc compiler error C2666 'overloaded functions have similar conversions' when comparing basic_json to std::string_view --- src/endpoint/request.cpp | 2 +- src/endpoint/response.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/endpoint/request.cpp b/src/endpoint/request.cpp index 19184832..63cc2ade 100644 --- a/src/endpoint/request.cpp +++ b/src/endpoint/request.cpp @@ -38,7 +38,7 @@ auto Request::FromJson(const nlohmann::json& json_obj) RpcErrorCode::kInvalidRequest, "Request must be a JSON object"); } - if (!json_obj.contains("jsonrpc") || json_obj["jsonrpc"] != kJsonRpcVersion) { + if (!json_obj.contains("jsonrpc") || std::string_view(json_obj["jsonrpc"]) != kJsonRpcVersion) { return RpcError::UnexpectedFromCode( RpcErrorCode::kInvalidRequest, "Missing or invalid 'jsonrpc' version"); } diff --git a/src/endpoint/response.cpp b/src/endpoint/response.cpp index 0b18f675..89788ff2 100644 --- a/src/endpoint/response.cpp +++ b/src/endpoint/response.cpp @@ -93,7 +93,7 @@ auto Response::ToJson() const -> nlohmann::json { auto Response::ValidateResponse() const -> std::expected { if (!response_.contains("jsonrpc") || - response_["jsonrpc"] != kJsonRpcVersion) { + std::string_view(response_["jsonrpc"]) != kJsonRpcVersion) { return RpcError::UnexpectedFromCode( RpcErrorCode::kInvalidRequest, "Invalid JSON-RPC version"); } From 6e31b6a5e12f51932b68ee54c5814807f7bd5ba1 Mon Sep 17 00:00:00 2001 From: Jonas Braun Date: Tue, 2 Dec 2025 19:56:29 +0100 Subject: [PATCH 2/4] use string getter function instead of converting to string_view --- src/endpoint/request.cpp | 2 +- src/endpoint/response.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/endpoint/request.cpp b/src/endpoint/request.cpp index 63cc2ade..395a813a 100644 --- a/src/endpoint/request.cpp +++ b/src/endpoint/request.cpp @@ -38,7 +38,7 @@ auto Request::FromJson(const nlohmann::json& json_obj) RpcErrorCode::kInvalidRequest, "Request must be a JSON object"); } - if (!json_obj.contains("jsonrpc") || std::string_view(json_obj["jsonrpc"]) != kJsonRpcVersion) { + if (!json_obj.contains("jsonrpc") || json_obj["jsonrpc"].get() != kJsonRpcVersion) { return RpcError::UnexpectedFromCode( RpcErrorCode::kInvalidRequest, "Missing or invalid 'jsonrpc' version"); } diff --git a/src/endpoint/response.cpp b/src/endpoint/response.cpp index 89788ff2..2625e5d8 100644 --- a/src/endpoint/response.cpp +++ b/src/endpoint/response.cpp @@ -93,7 +93,7 @@ auto Response::ToJson() const -> nlohmann::json { auto Response::ValidateResponse() const -> std::expected { if (!response_.contains("jsonrpc") || - std::string_view(response_["jsonrpc"]) != kJsonRpcVersion) { + response_["jsonrpc"].get() != kJsonRpcVersion) { return RpcError::UnexpectedFromCode( RpcErrorCode::kInvalidRequest, "Invalid JSON-RPC version"); } From 213cf9d7dc581ebb5385af1dfdcbcab8cf8bbb98 Mon Sep 17 00:00:00 2001 From: Jonas Braun Date: Tue, 2 Dec 2025 20:08:05 +0100 Subject: [PATCH 3/4] add braces --- src/endpoint/request.cpp | 2 +- src/endpoint/response.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/endpoint/request.cpp b/src/endpoint/request.cpp index 395a813a..db615e03 100644 --- a/src/endpoint/request.cpp +++ b/src/endpoint/request.cpp @@ -38,7 +38,7 @@ auto Request::FromJson(const nlohmann::json& json_obj) RpcErrorCode::kInvalidRequest, "Request must be a JSON object"); } - if (!json_obj.contains("jsonrpc") || json_obj["jsonrpc"].get() != kJsonRpcVersion) { + if (!json_obj.contains("jsonrpc") || (json_obj["jsonrpc"].get() != kJsonRpcVersion)) { return RpcError::UnexpectedFromCode( RpcErrorCode::kInvalidRequest, "Missing or invalid 'jsonrpc' version"); } diff --git a/src/endpoint/response.cpp b/src/endpoint/response.cpp index 2625e5d8..c5b27b54 100644 --- a/src/endpoint/response.cpp +++ b/src/endpoint/response.cpp @@ -93,7 +93,7 @@ auto Response::ToJson() const -> nlohmann::json { auto Response::ValidateResponse() const -> std::expected { if (!response_.contains("jsonrpc") || - response_["jsonrpc"].get() != kJsonRpcVersion) { + (response_["jsonrpc"].get() != kJsonRpcVersion)) { return RpcError::UnexpectedFromCode( RpcErrorCode::kInvalidRequest, "Invalid JSON-RPC version"); } From 31944653f6088b2d1c0da7318431c4def7a22517 Mon Sep 17 00:00:00 2001 From: Jonas Braun Date: Wed, 3 Dec 2025 20:23:52 +0100 Subject: [PATCH 4/4] run clang-format --- src/endpoint/request.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/endpoint/request.cpp b/src/endpoint/request.cpp index db615e03..3de190df 100644 --- a/src/endpoint/request.cpp +++ b/src/endpoint/request.cpp @@ -38,7 +38,8 @@ auto Request::FromJson(const nlohmann::json& json_obj) RpcErrorCode::kInvalidRequest, "Request must be a JSON object"); } - if (!json_obj.contains("jsonrpc") || (json_obj["jsonrpc"].get() != kJsonRpcVersion)) { + if (!json_obj.contains("jsonrpc") || + (json_obj["jsonrpc"].get() != kJsonRpcVersion)) { return RpcError::UnexpectedFromCode( RpcErrorCode::kInvalidRequest, "Missing or invalid 'jsonrpc' version"); }