diff --git a/CMakeLists.txt b/CMakeLists.txt index 276d58f1..df8a33e4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -772,7 +772,7 @@ target_link_libraries(dwarfs_common PUBLIC dwarfs_folly_lite) target_link_libraries(dwarfs_common PRIVATE PkgConfig::LIBCRYPTO xxHash::xxhash phmap) target_link_libraries(dwarfs_reader PUBLIC dwarfs_common) target_link_libraries(dwarfs_writer PUBLIC dwarfs_common dwarfs_compression_metadata) -target_link_libraries(dwarfs_writer PRIVATE phmap) +target_link_libraries(dwarfs_writer PRIVATE phmap range-v3::range-v3) target_link_libraries(dwarfs_extractor PUBLIC dwarfs_reader) target_link_libraries(dwarfs_tool PUBLIC dwarfs_common) @@ -971,6 +971,7 @@ if(WITH_TESTS) target_link_libraries(block_cache_test PRIVATE mkdwarfs_main) + target_link_libraries(block_merger_test PRIVATE range-v3::range-v3) target_link_libraries(ricepp_compressor_test PRIVATE range-v3::range-v3) foreach(tgt fits_categorizer_test diff --git a/include/dwarfs/detail/multi_queue_block_merger_impl.h b/include/dwarfs/detail/multi_queue_block_merger_impl.h index 4f4945c8..760efdab 100644 --- a/include/dwarfs/detail/multi_queue_block_merger_impl.h +++ b/include/dwarfs/detail/multi_queue_block_merger_impl.h @@ -34,8 +34,11 @@ #include #include -#include -#include + +#include +#include +#include +#include #include #include @@ -194,12 +197,13 @@ class multi_queue_block_merger_impl : public block_merger_base, continue; } - auto const queued_sizes = folly::join( - ", ", folly::gen::from(q) | folly::gen::map([this](auto const& blk) { - return blk.has_value() - ? std::to_string(this->block_size(*blk)) - : "&"; - }) | folly::gen::as>()); + auto const queued_sizes = + ranges::views::all(q) | + ranges::views::transform([this](auto const& blk) { + return blk.has_value() ? std::to_string(this->block_size(*blk)) + : "&"; + }) | + ranges::views::join(", ") | ranges::to(); auto const text = fmt::format("blocks({}): {} -> {}", src, q.size(), queued_sizes);