refactor: Use expected<void, error> instead of optional<error> (#2565)

Co-authored-by: Ayaz Salikhov <mathbunnyru@users.noreply.github.com>
This commit is contained in:
emrearıyürek
2025-09-15 14:54:09 +02:00
committed by GitHub
parent 26112d17f8
commit e996f2b7ab
19 changed files with 315 additions and 259 deletions

View File

@@ -186,7 +186,7 @@ HttpAsyncClient::HttpAsyncClient(boost::asio::io_context& ioContext) : stream_{i
{
}
std::optional<boost::system::error_code>
std::expected<void, boost::system::error_code>
HttpAsyncClient::connect(
std::string_view host,
std::string_view port,
@@ -198,18 +198,18 @@ HttpAsyncClient::connect(
boost::asio::ip::tcp::resolver resolver{stream_.get_executor()};
auto const resolverResults = resolver.resolve(host, port, error);
if (error)
return error;
return std::unexpected{error};
ASSERT(!resolverResults.empty(), "No results from resolver");
boost::beast::get_lowest_layer(stream_).expires_after(timeout);
stream_.async_connect(resolverResults.begin()->endpoint(), yield[error]);
if (error)
return error;
return std::nullopt;
return std::unexpected{error};
return {};
}
std::optional<boost::system::error_code>
std::expected<void, boost::system::error_code>
HttpAsyncClient::send(
boost::beast::http::request<boost::beast::http::string_body> request,
boost::asio::yield_context yield,
@@ -221,8 +221,8 @@ HttpAsyncClient::send(
boost::beast::get_lowest_layer(stream_).expires_after(timeout);
http::async_write(stream_, request, yield[error]);
if (error)
return error;
return std::nullopt;
return std::unexpected{error};
return {};
}
std::expected<boost::beast::http::response<boost::beast::http::string_body>, boost::system::error_code>

View File

@@ -78,7 +78,7 @@ class HttpAsyncClient {
public:
HttpAsyncClient(boost::asio::io_context& ioContext);
std::optional<boost::system::error_code>
std::expected<void, boost::system::error_code>
connect(
std::string_view host,
std::string_view port,
@@ -86,7 +86,7 @@ public:
std::chrono::steady_clock::duration timeout
);
std::optional<boost::system::error_code>
std::expected<void, boost::system::error_code>
send(
boost::beast::http::request<boost::beast::http::string_body> request,
boost::asio::yield_context yield,
@@ -98,6 +98,7 @@ public:
void
gracefulShutdown();
void
disconnect();
};

View File

@@ -137,7 +137,7 @@ WebSocketAsyncClient::WebSocketAsyncClient(boost::asio::io_context& ioContext) :
{
}
std::optional<boost::system::error_code>
std::expected<void, boost::system::error_code>
WebSocketAsyncClient::connect(
std::string const& host,
std::string const& port,
@@ -153,7 +153,7 @@ WebSocketAsyncClient::connect(
boost::beast::get_lowest_layer(stream_).expires_after(timeout);
stream_.next_layer().async_connect(results, yield[error]);
if (error)
return error;
return std::unexpected{error};
boost::beast::websocket::stream_base::timeout wsTimeout =
boost::beast::websocket::stream_base::timeout::suggested(boost::beast::role_type::client);
@@ -173,12 +173,12 @@ WebSocketAsyncClient::connect(
stream_.async_handshake(fmt::format("{}:{}", host, port), "/", yield[error]);
if (error)
return error;
return std::unexpected{error};
return std::nullopt;
return {};
}
std::optional<boost::system::error_code>
std::expected<void, boost::system::error_code>
WebSocketAsyncClient::send(
boost::asio::yield_context yield,
std::string_view message,
@@ -190,8 +190,8 @@ WebSocketAsyncClient::send(
);
if (error)
return error;
return std::nullopt;
return std::unexpected{error};
return {};
}
std::expected<std::string, boost::system::error_code>

View File

@@ -56,7 +56,7 @@ class WebSocketAsyncClient {
public:
WebSocketAsyncClient(boost::asio::io_context& ioContext);
std::optional<boost::system::error_code>
std::expected<void, boost::system::error_code>
connect(
std::string const& host,
std::string const& port,
@@ -65,7 +65,7 @@ public:
std::vector<WebHeader> additionalHeaders = {}
);
std::optional<boost::system::error_code>
std::expected<void, boost::system::error_code>
send(boost::asio::yield_context yield, std::string_view message, std::chrono::steady_clock::duration timeout);
std::expected<std::string, boost::system::error_code>