From 433bb5e46ab0b7803fb2421bd50057738de1d45a Mon Sep 17 00:00:00 2001 From: Marcus Holland-Moritz Date: Sat, 27 Jul 2024 15:50:50 +0200 Subject: [PATCH] refactor: switch from folly::gen to ranges --- src/dwarfs/block_compressor.cpp | 13 ++++++++----- src/dwarfs/internal/global_entry_data.cpp | 22 ++++++++++++++-------- src/mkdwarfs_main.cpp | 6 +++--- 3 files changed, 25 insertions(+), 16 deletions(-) diff --git a/src/dwarfs/block_compressor.cpp b/src/dwarfs/block_compressor.cpp index 20c31e8d..161fb74a 100644 --- a/src/dwarfs/block_compressor.cpp +++ b/src/dwarfs/block_compressor.cpp @@ -23,8 +23,7 @@ #include #include #include - -#include +#include #include #include @@ -104,10 +103,14 @@ compression_registry::make_decompressor(compression_type type, void compression_registry::for_each_algorithm( std::function const& fn) const { - using namespace folly::gen; + auto view = std::views::keys(factories_); + std::vector types{view.begin(), view.end()}; - from(factories_) | get<0>() | order | - [this, &fn](compression_type type) { fn(type, *factories_.at(type)); }; + std::ranges::sort(types); + + for (auto type : types) { + fn(type, *factories_.at(type)); + } } compression_registry::compression_registry() = default; diff --git a/src/dwarfs/internal/global_entry_data.cpp b/src/dwarfs/internal/global_entry_data.cpp index 8b070d5f..cacfc078 100644 --- a/src/dwarfs/internal/global_entry_data.cpp +++ b/src/dwarfs/internal/global_entry_data.cpp @@ -19,7 +19,7 @@ * along with dwarfs. If not, see . */ -#include +#include #include #include @@ -29,10 +29,12 @@ namespace dwarfs::internal { template std::vector global_entry_data::get_vector(map_type const& map) const { - using namespace folly::gen; - std::vector> pairs(map.begin(), map.end()); - return from(pairs) | orderBy([](auto const& p) { return p.second; }) | - get<0>() | as(); + std::vector> pairs{map.begin(), map.end()}; + std::ranges::sort(pairs, [](auto const& p1, auto const& p2) { + return p1.second < p2.second; + }); + auto view = std::views::keys(pairs); + return std::vector{view.begin(), view.end()}; } auto global_entry_data::get_uids() const -> std::vector { @@ -58,9 +60,13 @@ auto global_entry_data::get_symlinks() const -> std::vector { } void global_entry_data::index(map_type& map) { - using namespace folly::gen; - uint32_t ix = 0; - from(map) | get<0>() | order | [&](std::string const& s) { map[s] = ix++; }; + auto keys = std::views::all(map) | std::views::keys; + std::vector tmp{keys.begin(), keys.end()}; + std::ranges::sort(tmp); + std::decay_t::mapped_type ix{0}; + for (auto& s : tmp) { + map[s] = ix++; + } } uint64_t global_entry_data::get_time_offset(uint64_t time) const { diff --git a/src/mkdwarfs_main.cpp b/src/mkdwarfs_main.cpp index 222c9a01..ff04b428 100644 --- a/src/mkdwarfs_main.cpp +++ b/src/mkdwarfs_main.cpp @@ -410,15 +410,15 @@ int mkdwarfs_main(int argc, sys_char** argv, iolayer const& iol) { auto order_desc = "inode fragments order (" + order_parser.choices() + ")"; auto progress_desc = fmt::format( - "progress mode ({})", fmt::join(progress_modes | std::views::keys, ", ")); + "progress mode ({})", fmt::join(std::views::keys(progress_modes), ", ")); auto debug_filter_desc = fmt::format("show effect of filter rules without producing an image ({})", - fmt::join(debug_filter_modes | std::views::keys, ", ")); + fmt::join(std::views::keys(debug_filter_modes), ", ")); auto resolution_desc = fmt::format("time resolution in seconds or ({})", - fmt::join(time_resolutions | std::views::keys, ", ")); + fmt::join(std::views::keys(time_resolutions), ", ")); auto hash_list = checksum::available_algorithms();