diff --git a/api/api.hh b/api/api.hh index 3d4de729dc..c9fb039824 100644 --- a/api/api.hh +++ b/api/api.hh @@ -23,17 +23,6 @@ namespace api { -template -std::vector container_to_vec(const T& container) { - std::vector res; - res.reserve(std::size(container)); - - for (const auto& i : container) { - res.push_back(fmt::to_string(i)); - } - return res; -} - template std::vector map_to_key_value(const std::map& map) { std::vector res; diff --git a/api/column_family.cc b/api/column_family.cc index c85be406eb..b59c6efa41 100644 --- a/api/column_family.cc +++ b/api/column_family.cc @@ -1044,7 +1044,7 @@ void set_column_family(http_context& ctx, routes& r, sharded& res) { - return make_ready_future(container_to_vec(res)); + return make_ready_future(res | std::ranges::to()); }); }); diff --git a/api/config.cc b/api/config.cc index 950391eeb2..bf06bc6184 100644 --- a/api/config.cc +++ b/api/config.cc @@ -187,7 +187,7 @@ void set_config(std::shared_ptr < api_registry_builder20 > rb, http_context& ctx }); ss::get_all_data_file_locations.set(r, [&cfg](const_req req) { - return container_to_vec(cfg.data_file_directories()); + return cfg.data_file_directories(); }); ss::get_saved_caches_location.set(r, [&cfg](const_req req) { diff --git a/api/gossiper.cc b/api/gossiper.cc index b1c756c853..7c1d3991b9 100644 --- a/api/gossiper.cc +++ b/api/gossiper.cc @@ -21,14 +21,13 @@ using namespace json; void set_gossiper(http_context& ctx, routes& r, gms::gossiper& g) { httpd::gossiper_json::get_down_endpoint.set(r, [&g] (std::unique_ptr req) -> future { auto res = co_await g.get_unreachable_members_synchronized(); - co_return json::json_return_type(container_to_vec(res)); + co_return json::json_return_type(res | std::views::transform([] (auto& ep) { return fmt::to_string(ep); }) | std::ranges::to()); }); - httpd::gossiper_json::get_live_endpoint.set(r, [&g] (std::unique_ptr req) { - return g.get_live_members_synchronized().then([] (auto res) { - return make_ready_future(container_to_vec(res)); - }); + httpd::gossiper_json::get_live_endpoint.set(r, [&g] (std::unique_ptr req) -> future { + auto res = co_await g.get_live_members_synchronized(); + co_return json::json_return_type(res | std::views::transform([] (auto& ep) { return fmt::to_string(ep); }) | std::ranges::to()); }); httpd::gossiper_json::get_endpoint_downtime.set(r, [&g] (std::unique_ptr req) -> future { diff --git a/api/storage_service.cc b/api/storage_service.cc index 57f9cbc75a..5ebd3ed461 100644 --- a/api/storage_service.cc +++ b/api/storage_service.cc @@ -719,8 +719,8 @@ static json::json_return_type rest_get_natural_endpoints(http_context& ctx, sharded& ss, const_req req) { auto keyspace = validate_keyspace(ctx, req); - return container_to_vec(ss.local().get_natural_endpoints(keyspace, req.get_query_param("cf"), - req.get_query_param("key"))); + auto res = ss.local().get_natural_endpoints(keyspace, req.get_query_param("cf"), req.get_query_param("key")); + return res | std::views::transform([] (auto& ep) { return fmt::to_string(ep); }) | std::ranges::to(); } static diff --git a/api/token_metadata.cc b/api/token_metadata.cc index fde9e04027..65b470e654 100644 --- a/api/token_metadata.cc +++ b/api/token_metadata.cc @@ -54,12 +54,12 @@ void set_token_metadata(http_context& ctx, routes& r, sharded(); }); ss::get_moving_nodes.set(r, [](const_req req) { std::unordered_set addr; - return container_to_vec(addr); + return addr | std::ranges::to(); }); ss::get_joining_nodes.set(r, [&tm, &g](const_req req) { @@ -70,7 +70,7 @@ void set_token_metadata(http_context& ctx, routes& r, sharded(); }); ss::get_host_id_map.set(r, [&tm, &g](const_req req) {