mirror of
https://github.com/mhx/dwarfs.git
synced 2025-09-19 09:17:21 -04:00
refactor: prefer range-v3 until ranges will become more usable
This commit is contained in:
parent
9d04a07210
commit
9ac60736bf
@ -774,8 +774,9 @@ target_link_libraries(dwarfs_pcm_sample_transformer PUBLIC dwarfs_folly_lite)
|
||||
target_link_libraries(dwarfs_categorizer PUBLIC dwarfs_compression_metadata)
|
||||
target_link_libraries(dwarfs_categorizer PRIVATE range-v3::range-v3)
|
||||
target_link_libraries(dwarfs_common PUBLIC dwarfs_folly_lite)
|
||||
target_link_libraries(dwarfs_common PRIVATE PkgConfig::LIBCRYPTO xxHash::xxhash phmap)
|
||||
target_link_libraries(dwarfs_common PRIVATE PkgConfig::LIBCRYPTO xxHash::xxhash phmap range-v3::range-v3)
|
||||
target_link_libraries(dwarfs_reader PUBLIC dwarfs_common)
|
||||
target_link_libraries(dwarfs_reader PRIVATE range-v3::range-v3)
|
||||
target_link_libraries(dwarfs_writer PUBLIC dwarfs_common dwarfs_compression_metadata)
|
||||
target_link_libraries(dwarfs_writer PRIVATE phmap range-v3::range-v3)
|
||||
target_link_libraries(dwarfs_extractor PUBLIC dwarfs_reader)
|
||||
@ -975,9 +976,9 @@ if(WITH_TESTS)
|
||||
target_link_libraries(tool_main_test PRIVATE
|
||||
mkdwarfs_main dwarfsck_main dwarfsbench_main dwarfsextract_main)
|
||||
|
||||
target_link_libraries(block_cache_test PRIVATE mkdwarfs_main)
|
||||
|
||||
target_link_libraries(block_cache_test PRIVATE mkdwarfs_main range-v3::range-v3)
|
||||
target_link_libraries(block_merger_test PRIVATE range-v3::range-v3)
|
||||
target_link_libraries(chmod_transformer_test PRIVATE range-v3::range-v3)
|
||||
target_link_libraries(ricepp_compressor_test PRIVATE range-v3::range-v3)
|
||||
|
||||
foreach(tgt fits_categorizer_test
|
||||
|
@ -23,7 +23,10 @@
|
||||
#include <cassert>
|
||||
#include <cstdint>
|
||||
#include <iostream>
|
||||
#include <ranges>
|
||||
|
||||
#include <range/v3/algorithm/sort.hpp>
|
||||
#include <range/v3/range/conversion.hpp>
|
||||
#include <range/v3/view/map.hpp>
|
||||
|
||||
#include <dwarfs/block_compressor.h>
|
||||
#include <dwarfs/error.h>
|
||||
@ -103,10 +106,9 @@ compression_registry::make_decompressor(compression_type type,
|
||||
void compression_registry::for_each_algorithm(
|
||||
std::function<void(compression_type, compression_info const&)> const& fn)
|
||||
const {
|
||||
auto view = std::views::keys(factories_);
|
||||
std::vector<compression_type> types{view.begin(), view.end()};
|
||||
auto types = factories_ | ranges::views::keys | ranges::to<std::vector>;
|
||||
|
||||
std::ranges::sort(types);
|
||||
ranges::sort(types);
|
||||
|
||||
for (auto type : types) {
|
||||
fn(type, *factories_.at(type));
|
||||
|
@ -19,7 +19,9 @@
|
||||
* along with dwarfs. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include <ranges>
|
||||
#include <range/v3/algorithm/sort.hpp>
|
||||
#include <range/v3/range/conversion.hpp>
|
||||
#include <range/v3/view/map.hpp>
|
||||
|
||||
#include <dwarfs/error.h>
|
||||
#include <dwarfs/options.h>
|
||||
@ -31,11 +33,8 @@ namespace dwarfs::internal {
|
||||
template <typename T, typename U>
|
||||
std::vector<T> global_entry_data::get_vector(map_type<T, U> const& map) const {
|
||||
std::vector<std::pair<T, U>> 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<T>{view.begin(), view.end()};
|
||||
ranges::sort(pairs, ranges::less{}, &std::pair<T, U>::second);
|
||||
return pairs | ranges::views::keys | ranges::to<std::vector>;
|
||||
}
|
||||
|
||||
auto global_entry_data::get_uids() const -> std::vector<uid_type> {
|
||||
@ -61,12 +60,11 @@ auto global_entry_data::get_symlinks() const -> std::vector<std::string> {
|
||||
}
|
||||
|
||||
void global_entry_data::index(map_type<std::string, uint32_t>& map) {
|
||||
auto keys = std::views::all(map) | std::views::keys;
|
||||
std::vector<std::string_view> tmp{keys.begin(), keys.end()};
|
||||
std::ranges::sort(tmp);
|
||||
auto keys = map | ranges::views::keys | ranges::to<std::vector>;
|
||||
ranges::sort(keys);
|
||||
std::decay_t<decltype(map)>::mapped_type ix{0};
|
||||
for (auto& s : tmp) {
|
||||
map[s] = ix++;
|
||||
for (auto& k : keys) {
|
||||
map[k] = ix++;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -30,7 +30,6 @@
|
||||
#include <map>
|
||||
#include <memory>
|
||||
#include <optional>
|
||||
#include <ranges>
|
||||
#include <sstream>
|
||||
#include <stdexcept>
|
||||
#include <string>
|
||||
@ -57,6 +56,7 @@
|
||||
#endif
|
||||
|
||||
#include <range/v3/view/enumerate.hpp>
|
||||
#include <range/v3/view/map.hpp>
|
||||
|
||||
#include <dwarfs/block_compressor.h>
|
||||
#include <dwarfs/block_compressor_parser.h>
|
||||
@ -409,16 +409,17 @@ 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(std::views::keys(progress_modes), ", "));
|
||||
auto progress_desc =
|
||||
fmt::format("progress mode ({})",
|
||||
fmt::join(ranges::views::keys(progress_modes), ", "));
|
||||
|
||||
auto debug_filter_desc =
|
||||
fmt::format("show effect of filter rules without producing an image ({})",
|
||||
fmt::join(std::views::keys(debug_filter_modes), ", "));
|
||||
fmt::join(ranges::views::keys(debug_filter_modes), ", "));
|
||||
|
||||
auto resolution_desc =
|
||||
fmt::format("time resolution in seconds or ({})",
|
||||
fmt::join(std::views::keys(time_resolutions), ", "));
|
||||
fmt::join(ranges::views::keys(time_resolutions), ", "));
|
||||
|
||||
auto hash_list = checksum::available_algorithms();
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user