code_ownership 2.0.0.pre.1 → 2.0.0.pre.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.cargo/config +2 -2
- data/Cargo.lock +22 -31
- data/ext/cargo-vendor/codeowners-0.2.17/.cargo-checksum.json +1 -0
- data/ext/cargo-vendor/codeowners-0.2.17/Cargo.lock +1257 -0
- data/ext/cargo-vendor/codeowners-0.2.17/Cargo.toml +111 -0
- data/ext/cargo-vendor/codeowners-0.2.17/README.md +287 -0
- data/ext/cargo-vendor/codeowners-0.2.17/dev/run_benchmarks_for_gv.sh +12 -0
- data/ext/cargo-vendor/codeowners-0.2.17/rust-toolchain.toml +4 -0
- data/ext/cargo-vendor/codeowners-0.2.17/src/cache/file.rs +179 -0
- data/ext/cargo-vendor/codeowners-0.2.17/src/cli.rs +129 -0
- data/ext/cargo-vendor/codeowners-0.2.17/src/common_test.rs +358 -0
- data/ext/cargo-vendor/codeowners-0.2.17/src/config.rs +126 -0
- data/ext/cargo-vendor/codeowners-0.2.17/src/crosscheck.rs +90 -0
- data/ext/cargo-vendor/codeowners-0.2.17/src/lib.rs +11 -0
- data/ext/cargo-vendor/codeowners-0.2.17/src/main.rs +43 -0
- data/ext/cargo-vendor/codeowners-0.2.17/src/ownership/codeowners_file_parser.rs +504 -0
- data/ext/cargo-vendor/codeowners-0.2.17/src/ownership/codeowners_query.rs +32 -0
- data/ext/cargo-vendor/codeowners-0.2.17/src/ownership/file_generator.rs +203 -0
- data/ext/cargo-vendor/codeowners-0.2.17/src/ownership/file_owner_resolver.rs +414 -0
- data/ext/cargo-vendor/codeowners-0.2.17/src/ownership/mapper/annotated_file_mapper.rs +158 -0
- data/ext/cargo-vendor/codeowners-0.2.17/src/ownership/mapper/package_mapper.rs +220 -0
- data/ext/cargo-vendor/codeowners-0.2.17/src/ownership/mapper.rs +249 -0
- data/ext/cargo-vendor/codeowners-0.2.17/src/ownership/validator.rs +218 -0
- data/ext/cargo-vendor/codeowners-0.2.17/src/ownership.rs +223 -0
- data/ext/cargo-vendor/codeowners-0.2.17/src/path_utils.rs +49 -0
- data/ext/cargo-vendor/codeowners-0.2.17/src/project.rs +229 -0
- data/ext/cargo-vendor/codeowners-0.2.17/src/project_builder.rs +337 -0
- data/ext/cargo-vendor/codeowners-0.2.17/src/project_file_builder.rs +107 -0
- data/ext/cargo-vendor/codeowners-0.2.17/src/runner/api.rs +141 -0
- data/ext/cargo-vendor/codeowners-0.2.17/src/runner/types.rs +37 -0
- data/ext/cargo-vendor/codeowners-0.2.17/src/runner.rs +390 -0
- data/ext/cargo-vendor/codeowners-0.2.17/src/tracked_files.rs +58 -0
- data/ext/cargo-vendor/codeowners-0.2.17/tests/common/mod.rs +179 -0
- data/ext/cargo-vendor/codeowners-0.2.17/tests/crosscheck_owners_test.rs +74 -0
- data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/javascript_only_project/.github/CODEOWNERS +9 -0
- data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/javascript_only_project/.keep +3 -0
- data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/javascript_only_project/config/code_ownership.yml +12 -0
- data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/javascript_only_project/config/teams/design.yml +7 -0
- data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/javascript_only_project/config/teams/frontend.yml +6 -0
- data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/javascript_only_project/frontend/apps/public/index.tsx +6 -0
- data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/javascript_only_project/frontend/packages/dashboard/package.json +9 -0
- data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/javascript_only_project/frontend/packages/dashboard/src/index.tsx +6 -0
- data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/javascript_only_project/frontend/packages/ui-kit/.codeowner +3 -0
- data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/javascript_only_project/frontend/packages/ui-kit/src/button.tsx +5 -0
- data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/multiple-directory-owners/config/code_ownership.yml +10 -0
- data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/valid_project/.github/CODEOWNERS +41 -0
- data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/valid_project/config/code_ownership.yml +10 -0
- data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/valid_project/javascript/packages/list/page-admin.tsx +1 -0
- data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/valid_project/ruby/app/models/payroll.rb +3 -0
- data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/valid_project/ruby/app/views/foos/edit.erb +1 -0
- data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/valid_project/ruby/app/views/foos/index.html.erb +1 -0
- data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/valid_project/ruby/app/views/foos/new.html.erb +1 -0
- data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/valid_project_with_overrides/.github/CODEOWNERS +53 -0
- data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/valid_project_with_overrides/config/code_ownership.yml +10 -0
- data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/valid_project_with_overrides/config/teams/brewers.yml +11 -0
- data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/valid_project_with_overrides/config/teams/cubs.yml +9 -0
- data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/valid_project_with_overrides/config/teams/giants.yml +8 -0
- data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/valid_project_with_overrides/config/teams/rockies.yml +8 -0
- data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/valid_project_with_overrides/frontend/packages/components/datepicker/package.json +5 -0
- data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/valid_project_with_overrides/frontend/packages/components/datepicker/src/picks/dp.tsx +3 -0
- data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/valid_project_with_overrides/frontend/packages/components/list/package.json +5 -0
- data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/valid_project_with_overrides/frontend/packages/components/list/src/item.tsx +3 -0
- data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/valid_project_with_overrides/frontend/packages/components/textfield/package.json +5 -0
- data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/valid_project_with_overrides/frontend/packages/components/textfield/src/field.tsx +3 -0
- data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/valid_project_with_overrides/frontend/packages/components/textfield/src/fields/small.tsx +3 -0
- data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/valid_project_with_overrides/gems/apollo/lib/apollo.rb +6 -0
- data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/valid_project_with_overrides/gems/ivy/lib/ivy.rb +6 -0
- data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/valid_project_with_overrides/gems/lager/lib/lager.rb +6 -0
- data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/valid_project_with_overrides/gems/summit/lib/summit.rb +6 -0
- data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/valid_project_with_overrides/packs/games/package.yml +1 -0
- data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/valid_project_with_overrides/packs/locations/app/services/capacity.rb +0 -0
- data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/valid_project_with_overrides/packs/locations/package.yml +1 -0
- data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/valid_project_with_overrides/packs/schedule/app/services/date.rb +0 -0
- data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/valid_project_with_overrides/packs/schedule/package.yml +1 -0
- data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/valid_project_with_overrides/ruby/app/brewers/lib/util.rb +3 -0
- data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/valid_project_with_overrides/ruby/app/brewers/services/play.rb +9 -0
- data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/valid_project_with_overrides/ruby/app/cubs/.codeowner +3 -0
- data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/valid_project_with_overrides/ruby/app/cubs/services/models/.codeowner +1 -0
- data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/valid_project_with_overrides/ruby/app/cubs/services/models/db/price.rb +5 -0
- data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/valid_project_with_overrides/ruby/app/cubs/services/models/entertainment.rb +0 -0
- data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/valid_project_with_overrides/ruby/app/cubs/services/play.rb +5 -0
- data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/valid_project_with_overrides/ruby/app/giants/services/play.rb +0 -0
- data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/valid_project_with_overrides/ruby/app/rockies/services/play.rb +0 -0
- data/ext/cargo-vendor/codeowners-0.2.17/tests/invalid_project_test.rs +144 -0
- data/ext/cargo-vendor/codeowners-0.2.17/tests/multiple_directory_owners_test.rs +41 -0
- data/ext/cargo-vendor/codeowners-0.2.17/tests/runner_api.rs +181 -0
- data/ext/cargo-vendor/codeowners-0.2.17/tests/untracked_files_test.rs +38 -0
- data/ext/cargo-vendor/codeowners-0.2.17/tests/valid_project_test.rs +348 -0
- data/ext/cargo-vendor/codeowners-0.2.17/tests/valid_project_with_overrides_test.rs +38 -0
- data/ext/cargo-vendor/codeowners-0.2.17/tmp/.gitkeep +0 -0
- data/ext/cargo-vendor/glob-0.3.3/.cargo-checksum.json +1 -0
- data/ext/cargo-vendor/glob-0.3.3/.cargo_vcs_info.json +6 -0
- data/ext/cargo-vendor/glob-0.3.3/.github/workflows/rust.yml +99 -0
- data/ext/cargo-vendor/glob-0.3.3/CHANGELOG.md +44 -0
- data/ext/cargo-vendor/glob-0.3.3/Cargo.lock +107 -0
- data/ext/cargo-vendor/glob-0.3.3/Cargo.toml +45 -0
- data/ext/cargo-vendor/glob-0.3.3/Cargo.toml.orig +18 -0
- data/ext/cargo-vendor/glob-0.3.3/README.md +38 -0
- data/ext/cargo-vendor/glob-0.3.3/src/lib.rs +1511 -0
- data/ext/cargo-vendor/glob-0.3.3/tests/glob-std.rs +477 -0
- data/ext/cargo-vendor/indexmap-2.11.0/.cargo-checksum.json +1 -0
- data/ext/cargo-vendor/indexmap-2.11.0/.cargo_vcs_info.json +6 -0
- data/ext/cargo-vendor/indexmap-2.11.0/.github/workflows/ci.yml +165 -0
- data/ext/cargo-vendor/indexmap-2.11.0/Cargo.lock +243 -0
- data/ext/cargo-vendor/indexmap-2.11.0/Cargo.toml +148 -0
- data/ext/cargo-vendor/indexmap-2.11.0/Cargo.toml.orig +62 -0
- data/ext/cargo-vendor/indexmap-2.11.0/RELEASES.md +575 -0
- data/ext/cargo-vendor/indexmap-2.11.0/src/lib.rs +290 -0
- data/ext/cargo-vendor/indexmap-2.11.0/src/map/core/entry.rs +625 -0
- data/ext/cargo-vendor/indexmap-2.11.0/src/map/core.rs +764 -0
- data/ext/cargo-vendor/indexmap-2.11.0/src/map/mutable.rs +165 -0
- data/ext/cargo-vendor/indexmap-2.11.0/src/map/slice.rs +800 -0
- data/ext/cargo-vendor/indexmap-2.11.0/src/map/tests.rs +1312 -0
- data/ext/cargo-vendor/indexmap-2.11.0/src/map.rs +1832 -0
- data/ext/cargo-vendor/indexmap-2.11.0/src/rayon/map.rs +686 -0
- data/ext/cargo-vendor/indexmap-2.11.0/src/rayon/set.rs +777 -0
- data/ext/cargo-vendor/indexmap-2.11.0/src/set/mutable.rs +86 -0
- data/ext/cargo-vendor/indexmap-2.11.0/src/set/slice.rs +427 -0
- data/ext/cargo-vendor/indexmap-2.11.0/src/set/tests.rs +1060 -0
- data/ext/cargo-vendor/indexmap-2.11.0/src/set.rs +1454 -0
- data/ext/cargo-vendor/indexmap-2.11.0/src/sval.rs +36 -0
- data/ext/cargo-vendor/indexmap-2.11.0/tests/quick.rs +894 -0
- data/ext/cargo-vendor/rayon-1.11.0/.cargo-checksum.json +1 -0
- data/ext/cargo-vendor/rayon-1.11.0/.cargo_vcs_info.json +6 -0
- data/ext/cargo-vendor/rayon-1.11.0/Cargo.lock +318 -0
- data/ext/cargo-vendor/rayon-1.11.0/Cargo.toml +130 -0
- data/ext/cargo-vendor/rayon-1.11.0/Cargo.toml.orig +57 -0
- data/ext/cargo-vendor/rayon-1.11.0/FAQ.md +213 -0
- data/ext/cargo-vendor/rayon-1.11.0/README.md +150 -0
- data/ext/cargo-vendor/rayon-1.11.0/RELEASES.md +922 -0
- data/ext/cargo-vendor/rayon-1.11.0/src/array.rs +85 -0
- data/ext/cargo-vendor/rayon-1.11.0/src/collections/binary_heap.rs +129 -0
- data/ext/cargo-vendor/rayon-1.11.0/src/collections/btree_map.rs +66 -0
- data/ext/cargo-vendor/rayon-1.11.0/src/collections/btree_set.rs +52 -0
- data/ext/cargo-vendor/rayon-1.11.0/src/collections/hash_map.rs +93 -0
- data/ext/cargo-vendor/rayon-1.11.0/src/collections/hash_set.rs +79 -0
- data/ext/cargo-vendor/rayon-1.11.0/src/collections/linked_list.rs +66 -0
- data/ext/cargo-vendor/rayon-1.11.0/src/collections/mod.rs +84 -0
- data/ext/cargo-vendor/rayon-1.11.0/src/collections/vec_deque.rs +159 -0
- data/ext/cargo-vendor/rayon-1.11.0/src/iter/blocks.rs +129 -0
- data/ext/cargo-vendor/rayon-1.11.0/src/iter/chain.rs +258 -0
- data/ext/cargo-vendor/rayon-1.11.0/src/iter/chunks.rs +216 -0
- data/ext/cargo-vendor/rayon-1.11.0/src/iter/cloned.rs +219 -0
- data/ext/cargo-vendor/rayon-1.11.0/src/iter/collect/mod.rs +114 -0
- data/ext/cargo-vendor/rayon-1.11.0/src/iter/collect/test.rs +368 -0
- data/ext/cargo-vendor/rayon-1.11.0/src/iter/copied.rs +219 -0
- data/ext/cargo-vendor/rayon-1.11.0/src/iter/empty.rs +108 -0
- data/ext/cargo-vendor/rayon-1.11.0/src/iter/enumerate.rs +128 -0
- data/ext/cargo-vendor/rayon-1.11.0/src/iter/filter.rs +137 -0
- data/ext/cargo-vendor/rayon-1.11.0/src/iter/filter_map.rs +141 -0
- data/ext/cargo-vendor/rayon-1.11.0/src/iter/find_first_last/mod.rs +230 -0
- data/ext/cargo-vendor/rayon-1.11.0/src/iter/find_first_last/test.rs +102 -0
- data/ext/cargo-vendor/rayon-1.11.0/src/iter/flat_map.rs +153 -0
- data/ext/cargo-vendor/rayon-1.11.0/src/iter/flat_map_iter.rs +145 -0
- data/ext/cargo-vendor/rayon-1.11.0/src/iter/flatten.rs +134 -0
- data/ext/cargo-vendor/rayon-1.11.0/src/iter/flatten_iter.rs +124 -0
- data/ext/cargo-vendor/rayon-1.11.0/src/iter/fold.rs +289 -0
- data/ext/cargo-vendor/rayon-1.11.0/src/iter/fold_chunks.rs +224 -0
- data/ext/cargo-vendor/rayon-1.11.0/src/iter/fold_chunks_with.rs +220 -0
- data/ext/cargo-vendor/rayon-1.11.0/src/iter/from_par_iter.rs +280 -0
- data/ext/cargo-vendor/rayon-1.11.0/src/iter/inspect.rs +253 -0
- data/ext/cargo-vendor/rayon-1.11.0/src/iter/interleave.rs +326 -0
- data/ext/cargo-vendor/rayon-1.11.0/src/iter/interleave_shortest.rs +80 -0
- data/ext/cargo-vendor/rayon-1.11.0/src/iter/intersperse.rs +401 -0
- data/ext/cargo-vendor/rayon-1.11.0/src/iter/len.rs +262 -0
- data/ext/cargo-vendor/rayon-1.11.0/src/iter/map.rs +255 -0
- data/ext/cargo-vendor/rayon-1.11.0/src/iter/map_with.rs +565 -0
- data/ext/cargo-vendor/rayon-1.11.0/src/iter/mod.rs +3627 -0
- data/ext/cargo-vendor/rayon-1.11.0/src/iter/multizip.rs +335 -0
- data/ext/cargo-vendor/rayon-1.11.0/src/iter/once.rs +70 -0
- data/ext/cargo-vendor/rayon-1.11.0/src/iter/panic_fuse.rs +338 -0
- data/ext/cargo-vendor/rayon-1.11.0/src/iter/par_bridge.rs +157 -0
- data/ext/cargo-vendor/rayon-1.11.0/src/iter/plumbing/mod.rs +476 -0
- data/ext/cargo-vendor/rayon-1.11.0/src/iter/positions.rs +133 -0
- data/ext/cargo-vendor/rayon-1.11.0/src/iter/repeat.rs +295 -0
- data/ext/cargo-vendor/rayon-1.11.0/src/iter/rev.rs +119 -0
- data/ext/cargo-vendor/rayon-1.11.0/src/iter/skip.rs +93 -0
- data/ext/cargo-vendor/rayon-1.11.0/src/iter/skip_any.rs +140 -0
- data/ext/cargo-vendor/rayon-1.11.0/src/iter/skip_any_while.rs +162 -0
- data/ext/cargo-vendor/rayon-1.11.0/src/iter/splitter.rs +172 -0
- data/ext/cargo-vendor/rayon-1.11.0/src/iter/step_by.rs +135 -0
- data/ext/cargo-vendor/rayon-1.11.0/src/iter/take.rs +84 -0
- data/ext/cargo-vendor/rayon-1.11.0/src/iter/take_any.rs +140 -0
- data/ext/cargo-vendor/rayon-1.11.0/src/iter/take_any_while.rs +162 -0
- data/ext/cargo-vendor/rayon-1.11.0/src/iter/test.rs +2392 -0
- data/ext/cargo-vendor/rayon-1.11.0/src/iter/try_fold.rs +282 -0
- data/ext/cargo-vendor/rayon-1.11.0/src/iter/unzip.rs +524 -0
- data/ext/cargo-vendor/rayon-1.11.0/src/iter/update.rs +323 -0
- data/ext/cargo-vendor/rayon-1.11.0/src/iter/walk_tree.rs +524 -0
- data/ext/cargo-vendor/rayon-1.11.0/src/iter/while_some.rs +150 -0
- data/ext/cargo-vendor/rayon-1.11.0/src/iter/zip.rs +153 -0
- data/ext/cargo-vendor/rayon-1.11.0/src/iter/zip_eq.rs +67 -0
- data/ext/cargo-vendor/rayon-1.11.0/src/lib.rs +156 -0
- data/ext/cargo-vendor/rayon-1.11.0/src/math.rs +25 -0
- data/ext/cargo-vendor/rayon-1.11.0/src/option.rs +197 -0
- data/ext/cargo-vendor/rayon-1.11.0/src/range.rs +457 -0
- data/ext/cargo-vendor/rayon-1.11.0/src/range_inclusive.rs +381 -0
- data/ext/cargo-vendor/rayon-1.11.0/src/result.rs +132 -0
- data/ext/cargo-vendor/rayon-1.11.0/src/slice/chunk_by.rs +239 -0
- data/ext/cargo-vendor/rayon-1.11.0/src/slice/chunks.rs +387 -0
- data/ext/cargo-vendor/rayon-1.11.0/src/slice/mod.rs +1242 -0
- data/ext/cargo-vendor/rayon-1.11.0/src/slice/rchunks.rs +385 -0
- data/ext/cargo-vendor/rayon-1.11.0/src/slice/sort.rs +1686 -0
- data/ext/cargo-vendor/rayon-1.11.0/src/slice/test.rs +216 -0
- data/ext/cargo-vendor/rayon-1.11.0/src/str.rs +1005 -0
- data/ext/cargo-vendor/rayon-1.11.0/src/vec.rs +292 -0
- data/ext/cargo-vendor/rayon-1.11.0/tests/clones.rs +222 -0
- data/ext/cargo-vendor/rayon-1.11.0/tests/collect.rs +113 -0
- data/ext/cargo-vendor/rayon-1.11.0/tests/debug.rs +233 -0
- data/ext/cargo-vendor/rayon-1.11.0/tests/named-threads.rs +25 -0
- data/ext/cargo-vendor/rayon-1.11.0/tests/producer_split_at.rs +386 -0
- data/ext/cargo-vendor/rayon-1.11.0/tests/sort-panic-safe.rs +164 -0
- data/ext/cargo-vendor/rayon-1.11.0/tests/str.rs +122 -0
- data/ext/cargo-vendor/rayon-core-1.13.0/.cargo-checksum.json +1 -0
- data/ext/cargo-vendor/rayon-core-1.13.0/.cargo_vcs_info.json +6 -0
- data/ext/cargo-vendor/rayon-core-1.13.0/Cargo.lock +309 -0
- data/ext/cargo-vendor/rayon-core-1.13.0/Cargo.toml +93 -0
- data/ext/cargo-vendor/rayon-core-1.13.0/Cargo.toml.orig +35 -0
- data/ext/cargo-vendor/rayon-core-1.13.0/README.md +11 -0
- data/ext/cargo-vendor/rayon-core-1.13.0/src/broadcast/mod.rs +150 -0
- data/ext/cargo-vendor/rayon-core-1.13.0/src/join/mod.rs +186 -0
- data/ext/cargo-vendor/rayon-core-1.13.0/src/join/test.rs +150 -0
- data/ext/cargo-vendor/rayon-core-1.13.0/src/latch.rs +457 -0
- data/ext/cargo-vendor/rayon-core-1.13.0/src/lib.rs +864 -0
- data/ext/cargo-vendor/rayon-core-1.13.0/src/registry.rs +1002 -0
- data/ext/cargo-vendor/rayon-core-1.13.0/src/scope/mod.rs +773 -0
- data/ext/cargo-vendor/rayon-core-1.13.0/src/scope/test.rs +621 -0
- data/ext/cargo-vendor/rayon-core-1.13.0/src/sleep/README.md +219 -0
- data/ext/cargo-vendor/rayon-core-1.13.0/src/sleep/counters.rs +273 -0
- data/ext/cargo-vendor/rayon-core-1.13.0/src/sleep/mod.rs +324 -0
- data/ext/cargo-vendor/rayon-core-1.13.0/src/spawn/mod.rs +163 -0
- data/ext/cargo-vendor/rayon-core-1.13.0/src/spawn/test.rs +255 -0
- data/ext/cargo-vendor/rayon-core-1.13.0/src/test.rs +200 -0
- data/ext/cargo-vendor/rayon-core-1.13.0/src/thread_pool/mod.rs +502 -0
- data/ext/cargo-vendor/rayon-core-1.13.0/src/thread_pool/test.rs +418 -0
- data/ext/cargo-vendor/rayon-core-1.13.0/tests/use_current_thread.rs +57 -0
- data/ext/cargo-vendor/serde_json-1.0.143/.cargo-checksum.json +1 -0
- data/ext/cargo-vendor/serde_json-1.0.143/.cargo_vcs_info.json +6 -0
- data/ext/cargo-vendor/serde_json-1.0.143/.github/workflows/ci.yml +156 -0
- data/ext/cargo-vendor/serde_json-1.0.143/Cargo.lock +419 -0
- data/ext/cargo-vendor/serde_json-1.0.143/Cargo.toml +157 -0
- data/ext/cargo-vendor/serde_json-1.0.143/Cargo.toml.orig +91 -0
- data/ext/cargo-vendor/serde_json-1.0.143/src/lib.rs +438 -0
- data/ext/cargo-vendor/serde_json-1.0.143/src/map.rs +1181 -0
- data/ext/cargo-vendor/serde_json-1.0.143/src/ser.rs +2285 -0
- data/ext/cargo-vendor/serde_json-1.0.143/src/value/de.rs +1507 -0
- data/ext/cargo-vendor/tempfile-3.21.0/.cargo-checksum.json +1 -0
- data/ext/cargo-vendor/tempfile-3.21.0/.cargo_vcs_info.json +6 -0
- data/ext/cargo-vendor/tempfile-3.21.0/.github/workflows/ci.yml +109 -0
- data/ext/cargo-vendor/tempfile-3.21.0/CHANGELOG.md +364 -0
- data/ext/cargo-vendor/tempfile-3.21.0/Cargo.lock +196 -0
- data/ext/cargo-vendor/tempfile-3.21.0/Cargo.toml +98 -0
- data/ext/cargo-vendor/tempfile-3.21.0/Cargo.toml.orig +47 -0
- data/ext/cargo-vendor/winapi-util-0.1.10/.cargo-checksum.json +1 -0
- data/ext/cargo-vendor/winapi-util-0.1.10/.cargo_vcs_info.json +6 -0
- data/ext/cargo-vendor/winapi-util-0.1.10/.github/FUNDING.yml +1 -0
- data/ext/cargo-vendor/winapi-util-0.1.10/Cargo.lock +83 -0
- data/ext/cargo-vendor/winapi-util-0.1.10/Cargo.toml +54 -0
- data/ext/cargo-vendor/winapi-util-0.1.10/Cargo.toml.orig +25 -0
- data/ext/code_ownership/Cargo.toml +9 -9
- data/ext/code_ownership/src/lib.rs +40 -6
- data/lib/code_ownership/cli.rb +5 -18
- data/lib/code_ownership/private/for_file_output_builder.rb +83 -0
- data/lib/code_ownership/private/team_finder.rb +21 -7
- data/lib/code_ownership/version.rb +1 -1
- data/lib/code_ownership.rb +173 -6
- metadata +513 -706
- data/ext/cargo-vendor/codeowners-0.2.7/.cargo-checksum.json +0 -1
- data/ext/cargo-vendor/codeowners-0.2.7/Cargo.lock +0 -1230
- data/ext/cargo-vendor/codeowners-0.2.7/Cargo.toml +0 -95
- data/ext/cargo-vendor/codeowners-0.2.7/README.md +0 -204
- data/ext/cargo-vendor/codeowners-0.2.7/dev/run_benchmarks_for_gv.sh +0 -13
- data/ext/cargo-vendor/codeowners-0.2.7/rust-toolchain.toml +0 -4
- data/ext/cargo-vendor/codeowners-0.2.7/src/cache/file.rs +0 -181
- data/ext/cargo-vendor/codeowners-0.2.7/src/cli.rs +0 -119
- data/ext/cargo-vendor/codeowners-0.2.7/src/common_test.rs +0 -338
- data/ext/cargo-vendor/codeowners-0.2.7/src/config.rs +0 -118
- data/ext/cargo-vendor/codeowners-0.2.7/src/lib.rs +0 -8
- data/ext/cargo-vendor/codeowners-0.2.7/src/main.rs +0 -43
- data/ext/cargo-vendor/codeowners-0.2.7/src/ownership/file_generator.rs +0 -203
- data/ext/cargo-vendor/codeowners-0.2.7/src/ownership/for_file_fast.rs +0 -425
- data/ext/cargo-vendor/codeowners-0.2.7/src/ownership/mapper/package_mapper.rs +0 -220
- data/ext/cargo-vendor/codeowners-0.2.7/src/ownership/mapper/team_file_mapper.rs +0 -123
- data/ext/cargo-vendor/codeowners-0.2.7/src/ownership/mapper.rs +0 -249
- data/ext/cargo-vendor/codeowners-0.2.7/src/ownership/parser.rs +0 -486
- data/ext/cargo-vendor/codeowners-0.2.7/src/ownership/tests.rs +0 -219
- data/ext/cargo-vendor/codeowners-0.2.7/src/ownership/validator.rs +0 -218
- data/ext/cargo-vendor/codeowners-0.2.7/src/ownership.rs +0 -220
- data/ext/cargo-vendor/codeowners-0.2.7/src/project.rs +0 -229
- data/ext/cargo-vendor/codeowners-0.2.7/src/project_builder.rs +0 -319
- data/ext/cargo-vendor/codeowners-0.2.7/src/project_file_builder.rs +0 -75
- data/ext/cargo-vendor/codeowners-0.2.7/src/runner.rs +0 -312
- data/ext/cargo-vendor/codeowners-0.2.7/tests/common/mod.rs +0 -113
- data/ext/cargo-vendor/codeowners-0.2.7/tests/fixtures/multiple-directory-owners/config/code_ownership.yml +0 -10
- data/ext/cargo-vendor/codeowners-0.2.7/tests/fixtures/valid_project/.github/CODEOWNERS +0 -37
- data/ext/cargo-vendor/codeowners-0.2.7/tests/fixtures/valid_project/config/code_ownership.yml +0 -10
- data/ext/cargo-vendor/codeowners-0.2.7/tests/fixtures/valid_project/ruby/app/models/payroll.rb +0 -3
- data/ext/cargo-vendor/codeowners-0.2.7/tests/invalid_project_test.rs +0 -90
- data/ext/cargo-vendor/codeowners-0.2.7/tests/multiple_directory_owners_test.rs +0 -35
- data/ext/cargo-vendor/codeowners-0.2.7/tests/valid_project_test.rs +0 -284
- data/ext/cargo-vendor/glob-0.3.2/.cargo-checksum.json +0 -1
- data/ext/cargo-vendor/glob-0.3.2/.cargo_vcs_info.json +0 -6
- data/ext/cargo-vendor/glob-0.3.2/.github/workflows/rust.yml +0 -65
- data/ext/cargo-vendor/glob-0.3.2/CHANGELOG.md +0 -33
- data/ext/cargo-vendor/glob-0.3.2/Cargo.lock +0 -107
- data/ext/cargo-vendor/glob-0.3.2/Cargo.toml +0 -45
- data/ext/cargo-vendor/glob-0.3.2/Cargo.toml.orig +0 -19
- data/ext/cargo-vendor/glob-0.3.2/README.md +0 -37
- data/ext/cargo-vendor/glob-0.3.2/src/lib.rs +0 -1501
- data/ext/cargo-vendor/glob-0.3.2/tests/glob-std.rs +0 -474
- data/ext/cargo-vendor/indexmap-2.10.0/.cargo-checksum.json +0 -1
- data/ext/cargo-vendor/indexmap-2.10.0/.cargo_vcs_info.json +0 -6
- data/ext/cargo-vendor/indexmap-2.10.0/.github/workflows/ci.yml +0 -159
- data/ext/cargo-vendor/indexmap-2.10.0/Cargo.lock +0 -236
- data/ext/cargo-vendor/indexmap-2.10.0/Cargo.toml +0 -142
- data/ext/cargo-vendor/indexmap-2.10.0/Cargo.toml.orig +0 -61
- data/ext/cargo-vendor/indexmap-2.10.0/RELEASES.md +0 -563
- data/ext/cargo-vendor/indexmap-2.10.0/src/lib.rs +0 -288
- data/ext/cargo-vendor/indexmap-2.10.0/src/map/core/entry.rs +0 -574
- data/ext/cargo-vendor/indexmap-2.10.0/src/map/core.rs +0 -735
- data/ext/cargo-vendor/indexmap-2.10.0/src/map/mutable.rs +0 -165
- data/ext/cargo-vendor/indexmap-2.10.0/src/map/slice.rs +0 -751
- data/ext/cargo-vendor/indexmap-2.10.0/src/map/tests.rs +0 -1228
- data/ext/cargo-vendor/indexmap-2.10.0/src/map.rs +0 -1697
- data/ext/cargo-vendor/indexmap-2.10.0/src/rayon/map.rs +0 -662
- data/ext/cargo-vendor/indexmap-2.10.0/src/rayon/set.rs +0 -755
- data/ext/cargo-vendor/indexmap-2.10.0/src/set/mutable.rs +0 -86
- data/ext/cargo-vendor/indexmap-2.10.0/src/set/slice.rs +0 -380
- data/ext/cargo-vendor/indexmap-2.10.0/src/set/tests.rs +0 -999
- data/ext/cargo-vendor/indexmap-2.10.0/src/set.rs +0 -1340
- data/ext/cargo-vendor/indexmap-2.10.0/tests/quick.rs +0 -800
- data/ext/cargo-vendor/rayon-1.10.0/.cargo-checksum.json +0 -1
- data/ext/cargo-vendor/rayon-1.10.0/.cargo_vcs_info.json +0 -6
- data/ext/cargo-vendor/rayon-1.10.0/Cargo.toml +0 -61
- data/ext/cargo-vendor/rayon-1.10.0/Cargo.toml.orig +0 -39
- data/ext/cargo-vendor/rayon-1.10.0/FAQ.md +0 -227
- data/ext/cargo-vendor/rayon-1.10.0/README.md +0 -151
- data/ext/cargo-vendor/rayon-1.10.0/RELEASES.md +0 -909
- data/ext/cargo-vendor/rayon-1.10.0/src/array.rs +0 -85
- data/ext/cargo-vendor/rayon-1.10.0/src/collections/binary_heap.rs +0 -120
- data/ext/cargo-vendor/rayon-1.10.0/src/collections/btree_map.rs +0 -66
- data/ext/cargo-vendor/rayon-1.10.0/src/collections/btree_set.rs +0 -52
- data/ext/cargo-vendor/rayon-1.10.0/src/collections/hash_map.rs +0 -96
- data/ext/cargo-vendor/rayon-1.10.0/src/collections/hash_set.rs +0 -80
- data/ext/cargo-vendor/rayon-1.10.0/src/collections/linked_list.rs +0 -66
- data/ext/cargo-vendor/rayon-1.10.0/src/collections/mod.rs +0 -84
- data/ext/cargo-vendor/rayon-1.10.0/src/collections/vec_deque.rs +0 -159
- data/ext/cargo-vendor/rayon-1.10.0/src/iter/blocks.rs +0 -131
- data/ext/cargo-vendor/rayon-1.10.0/src/iter/chain.rs +0 -267
- data/ext/cargo-vendor/rayon-1.10.0/src/iter/chunks.rs +0 -224
- data/ext/cargo-vendor/rayon-1.10.0/src/iter/cloned.rs +0 -223
- data/ext/cargo-vendor/rayon-1.10.0/src/iter/collect/mod.rs +0 -116
- data/ext/cargo-vendor/rayon-1.10.0/src/iter/collect/test.rs +0 -373
- data/ext/cargo-vendor/rayon-1.10.0/src/iter/copied.rs +0 -223
- data/ext/cargo-vendor/rayon-1.10.0/src/iter/empty.rs +0 -104
- data/ext/cargo-vendor/rayon-1.10.0/src/iter/enumerate.rs +0 -133
- data/ext/cargo-vendor/rayon-1.10.0/src/iter/filter.rs +0 -141
- data/ext/cargo-vendor/rayon-1.10.0/src/iter/filter_map.rs +0 -142
- data/ext/cargo-vendor/rayon-1.10.0/src/iter/find_first_last/mod.rs +0 -230
- data/ext/cargo-vendor/rayon-1.10.0/src/iter/find_first_last/test.rs +0 -105
- data/ext/cargo-vendor/rayon-1.10.0/src/iter/flat_map.rs +0 -154
- data/ext/cargo-vendor/rayon-1.10.0/src/iter/flat_map_iter.rs +0 -147
- data/ext/cargo-vendor/rayon-1.10.0/src/iter/flatten.rs +0 -140
- data/ext/cargo-vendor/rayon-1.10.0/src/iter/flatten_iter.rs +0 -132
- data/ext/cargo-vendor/rayon-1.10.0/src/iter/fold.rs +0 -302
- data/ext/cargo-vendor/rayon-1.10.0/src/iter/fold_chunks.rs +0 -236
- data/ext/cargo-vendor/rayon-1.10.0/src/iter/fold_chunks_with.rs +0 -231
- data/ext/cargo-vendor/rayon-1.10.0/src/iter/from_par_iter.rs +0 -310
- data/ext/cargo-vendor/rayon-1.10.0/src/iter/inspect.rs +0 -257
- data/ext/cargo-vendor/rayon-1.10.0/src/iter/interleave.rs +0 -335
- data/ext/cargo-vendor/rayon-1.10.0/src/iter/interleave_shortest.rs +0 -85
- data/ext/cargo-vendor/rayon-1.10.0/src/iter/intersperse.rs +0 -410
- data/ext/cargo-vendor/rayon-1.10.0/src/iter/len.rs +0 -270
- data/ext/cargo-vendor/rayon-1.10.0/src/iter/map.rs +0 -259
- data/ext/cargo-vendor/rayon-1.10.0/src/iter/map_with.rs +0 -573
- data/ext/cargo-vendor/rayon-1.10.0/src/iter/mod.rs +0 -3656
- data/ext/cargo-vendor/rayon-1.10.0/src/iter/multizip.rs +0 -338
- data/ext/cargo-vendor/rayon-1.10.0/src/iter/once.rs +0 -68
- data/ext/cargo-vendor/rayon-1.10.0/src/iter/panic_fuse.rs +0 -342
- data/ext/cargo-vendor/rayon-1.10.0/src/iter/par_bridge.rs +0 -159
- data/ext/cargo-vendor/rayon-1.10.0/src/iter/plumbing/mod.rs +0 -483
- data/ext/cargo-vendor/rayon-1.10.0/src/iter/positions.rs +0 -137
- data/ext/cargo-vendor/rayon-1.10.0/src/iter/repeat.rs +0 -241
- data/ext/cargo-vendor/rayon-1.10.0/src/iter/rev.rs +0 -123
- data/ext/cargo-vendor/rayon-1.10.0/src/iter/skip.rs +0 -94
- data/ext/cargo-vendor/rayon-1.10.0/src/iter/skip_any.rs +0 -144
- data/ext/cargo-vendor/rayon-1.10.0/src/iter/skip_any_while.rs +0 -166
- data/ext/cargo-vendor/rayon-1.10.0/src/iter/splitter.rs +0 -174
- data/ext/cargo-vendor/rayon-1.10.0/src/iter/step_by.rs +0 -141
- data/ext/cargo-vendor/rayon-1.10.0/src/iter/take.rs +0 -85
- data/ext/cargo-vendor/rayon-1.10.0/src/iter/take_any.rs +0 -144
- data/ext/cargo-vendor/rayon-1.10.0/src/iter/take_any_while.rs +0 -166
- data/ext/cargo-vendor/rayon-1.10.0/src/iter/test.rs +0 -2333
- data/ext/cargo-vendor/rayon-1.10.0/src/iter/try_fold.rs +0 -298
- data/ext/cargo-vendor/rayon-1.10.0/src/iter/unzip.rs +0 -525
- data/ext/cargo-vendor/rayon-1.10.0/src/iter/update.rs +0 -327
- data/ext/cargo-vendor/rayon-1.10.0/src/iter/walk_tree.rs +0 -529
- data/ext/cargo-vendor/rayon-1.10.0/src/iter/while_some.rs +0 -154
- data/ext/cargo-vendor/rayon-1.10.0/src/iter/zip.rs +0 -158
- data/ext/cargo-vendor/rayon-1.10.0/src/iter/zip_eq.rs +0 -72
- data/ext/cargo-vendor/rayon-1.10.0/src/lib.rs +0 -160
- data/ext/cargo-vendor/rayon-1.10.0/src/math.rs +0 -54
- data/ext/cargo-vendor/rayon-1.10.0/src/option.rs +0 -203
- data/ext/cargo-vendor/rayon-1.10.0/src/range.rs +0 -454
- data/ext/cargo-vendor/rayon-1.10.0/src/range_inclusive.rs +0 -381
- data/ext/cargo-vendor/rayon-1.10.0/src/result.rs +0 -132
- data/ext/cargo-vendor/rayon-1.10.0/src/slice/chunk_by.rs +0 -244
- data/ext/cargo-vendor/rayon-1.10.0/src/slice/chunks.rs +0 -388
- data/ext/cargo-vendor/rayon-1.10.0/src/slice/mergesort.rs +0 -755
- data/ext/cargo-vendor/rayon-1.10.0/src/slice/mod.rs +0 -1226
- data/ext/cargo-vendor/rayon-1.10.0/src/slice/quicksort.rs +0 -902
- data/ext/cargo-vendor/rayon-1.10.0/src/slice/rchunks.rs +0 -386
- data/ext/cargo-vendor/rayon-1.10.0/src/slice/test.rs +0 -216
- data/ext/cargo-vendor/rayon-1.10.0/src/str.rs +0 -1010
- data/ext/cargo-vendor/rayon-1.10.0/src/vec.rs +0 -283
- data/ext/cargo-vendor/rayon-1.10.0/tests/clones.rs +0 -222
- data/ext/cargo-vendor/rayon-1.10.0/tests/collect.rs +0 -113
- data/ext/cargo-vendor/rayon-1.10.0/tests/debug.rs +0 -233
- data/ext/cargo-vendor/rayon-1.10.0/tests/named-threads.rs +0 -25
- data/ext/cargo-vendor/rayon-1.10.0/tests/producer_split_at.rs +0 -391
- data/ext/cargo-vendor/rayon-1.10.0/tests/sort-panic-safe.rs +0 -167
- data/ext/cargo-vendor/rayon-1.10.0/tests/str.rs +0 -119
- data/ext/cargo-vendor/rayon-core-1.12.1/.cargo-checksum.json +0 -1
- data/ext/cargo-vendor/rayon-core-1.12.1/.cargo_vcs_info.json +0 -6
- data/ext/cargo-vendor/rayon-core-1.12.1/Cargo.toml +0 -88
- data/ext/cargo-vendor/rayon-core-1.12.1/Cargo.toml.orig +0 -68
- data/ext/cargo-vendor/rayon-core-1.12.1/README.md +0 -11
- data/ext/cargo-vendor/rayon-core-1.12.1/src/broadcast/mod.rs +0 -150
- data/ext/cargo-vendor/rayon-core-1.12.1/src/join/mod.rs +0 -188
- data/ext/cargo-vendor/rayon-core-1.12.1/src/join/test.rs +0 -151
- data/ext/cargo-vendor/rayon-core-1.12.1/src/latch.rs +0 -461
- data/ext/cargo-vendor/rayon-core-1.12.1/src/lib.rs +0 -875
- data/ext/cargo-vendor/rayon-core-1.12.1/src/registry.rs +0 -996
- data/ext/cargo-vendor/rayon-core-1.12.1/src/scope/mod.rs +0 -769
- data/ext/cargo-vendor/rayon-core-1.12.1/src/scope/test.rs +0 -619
- data/ext/cargo-vendor/rayon-core-1.12.1/src/sleep/README.md +0 -219
- data/ext/cargo-vendor/rayon-core-1.12.1/src/sleep/counters.rs +0 -277
- data/ext/cargo-vendor/rayon-core-1.12.1/src/sleep/mod.rs +0 -325
- data/ext/cargo-vendor/rayon-core-1.12.1/src/spawn/mod.rs +0 -163
- data/ext/cargo-vendor/rayon-core-1.12.1/src/spawn/test.rs +0 -255
- data/ext/cargo-vendor/rayon-core-1.12.1/src/test.rs +0 -200
- data/ext/cargo-vendor/rayon-core-1.12.1/src/thread_pool/mod.rs +0 -508
- data/ext/cargo-vendor/rayon-core-1.12.1/src/thread_pool/test.rs +0 -418
- data/ext/cargo-vendor/rayon-core-1.12.1/tests/use_current_thread.rs +0 -57
- data/ext/cargo-vendor/serde_json-1.0.142/.cargo-checksum.json +0 -1
- data/ext/cargo-vendor/serde_json-1.0.142/.cargo_vcs_info.json +0 -6
- data/ext/cargo-vendor/serde_json-1.0.142/.github/workflows/ci.yml +0 -158
- data/ext/cargo-vendor/serde_json-1.0.142/Cargo.lock +0 -419
- data/ext/cargo-vendor/serde_json-1.0.142/Cargo.toml +0 -157
- data/ext/cargo-vendor/serde_json-1.0.142/Cargo.toml.orig +0 -91
- data/ext/cargo-vendor/serde_json-1.0.142/src/lib.rs +0 -438
- data/ext/cargo-vendor/serde_json-1.0.142/src/map.rs +0 -1174
- data/ext/cargo-vendor/serde_json-1.0.142/src/ser.rs +0 -2285
- data/ext/cargo-vendor/serde_json-1.0.142/src/value/de.rs +0 -1500
- data/ext/cargo-vendor/tempfile-3.20.0/.cargo-checksum.json +0 -1
- data/ext/cargo-vendor/tempfile-3.20.0/.cargo_vcs_info.json +0 -6
- data/ext/cargo-vendor/tempfile-3.20.0/.github/workflows/ci.yml +0 -107
- data/ext/cargo-vendor/tempfile-3.20.0/CHANGELOG.md +0 -360
- data/ext/cargo-vendor/tempfile-3.20.0/Cargo.lock +0 -183
- data/ext/cargo-vendor/tempfile-3.20.0/Cargo.toml +0 -98
- data/ext/cargo-vendor/tempfile-3.20.0/Cargo.toml.orig +0 -47
- data/ext/cargo-vendor/winapi-util-0.1.9/.cargo-checksum.json +0 -1
- data/ext/cargo-vendor/winapi-util-0.1.9/.cargo_vcs_info.json +0 -6
- data/ext/cargo-vendor/winapi-util-0.1.9/Cargo.toml +0 -53
- data/ext/cargo-vendor/winapi-util-0.1.9/Cargo.toml.orig +0 -25
- data/ext/cargo-vendor/windows-sys-0.59.0/.cargo-checksum.json +0 -1
- data/ext/cargo-vendor/windows-sys-0.59.0/.cargo_vcs_info.json +0 -6
- data/ext/cargo-vendor/windows-sys-0.59.0/Cargo.toml +0 -298
- data/ext/cargo-vendor/windows-sys-0.59.0/Cargo.toml.orig +0 -274
- data/ext/cargo-vendor/windows-sys-0.59.0/license-apache-2.0 +0 -201
- data/ext/cargo-vendor/windows-sys-0.59.0/license-mit +0 -21
- data/ext/cargo-vendor/windows-sys-0.59.0/readme.md +0 -87
- data/ext/cargo-vendor/windows-sys-0.59.0/rustfmt.toml +0 -2
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Wdk/Devices/Bluetooth/mod.rs +0 -32
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Wdk/Devices/HumanInterfaceDevice/mod.rs +0 -39
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Wdk/Devices/mod.rs +0 -4
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Wdk/Foundation/mod.rs +0 -1317
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Wdk/Graphics/Direct3D/mod.rs +0 -9170
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Wdk/Graphics/mod.rs +0 -2
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Wdk/NetworkManagement/Ndis/mod.rs +0 -3892
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Wdk/NetworkManagement/WindowsFilteringPlatform/mod.rs +0 -269
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Wdk/NetworkManagement/mod.rs +0 -4
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Wdk/Storage/FileSystem/Minifilters/mod.rs +0 -1392
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Wdk/Storage/FileSystem/mod.rs +0 -4503
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Wdk/Storage/mod.rs +0 -2
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Wdk/System/IO/mod.rs +0 -2
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Wdk/System/Memory/mod.rs +0 -11
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Wdk/System/OfflineRegistry/mod.rs +0 -28
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Wdk/System/Registry/mod.rs +0 -180
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Wdk/System/SystemInformation/mod.rs +0 -18
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Wdk/System/SystemServices/mod.rs +0 -13663
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Wdk/System/Threading/mod.rs +0 -155
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Wdk/System/mod.rs +0 -14
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Wdk/mod.rs +0 -12
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Data/HtmlHelp/mod.rs +0 -447
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Data/RightsManagement/mod.rs +0 -237
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Data/mod.rs +0 -4
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Devices/AllJoyn/mod.rs +0 -1273
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Devices/BiometricFramework/mod.rs +0 -1481
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Devices/Bluetooth/mod.rs +0 -1419
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Devices/Communication/mod.rs +0 -312
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Devices/DeviceAndDriverInstallation/mod.rs +0 -3969
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Devices/DeviceQuery/mod.rs +0 -141
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Devices/Display/mod.rs +0 -3141
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Devices/Enumeration/Pnp/mod.rs +0 -96
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Devices/Enumeration/mod.rs +0 -2
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Devices/Fax/mod.rs +0 -1203
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Devices/HumanInterfaceDevice/mod.rs +0 -3684
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Devices/PortableDevices/mod.rs +0 -1999
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Devices/Properties/mod.rs +0 -261
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Devices/Pwm/mod.rs +0 -73
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Devices/Sensors/mod.rs +0 -687
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Devices/SerialCommunication/mod.rs +0 -230
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Devices/Tapi/mod.rs +0 -3217
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Devices/Usb/mod.rs +0 -2694
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Devices/WebServicesOnDevices/mod.rs +0 -660
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Devices/mod.rs +0 -36
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Foundation/mod.rs +0 -10318
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Gaming/mod.rs +0 -99
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Globalization/mod.rs +0 -5135
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Graphics/Dwm/mod.rs +0 -232
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Graphics/Gdi/mod.rs +0 -3857
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Graphics/GdiPlus/mod.rs +0 -2307
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Graphics/Hlsl/mod.rs +0 -2
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Graphics/OpenGL/mod.rs +0 -1276
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Graphics/Printing/PrintTicket/mod.rs +0 -28
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Graphics/Printing/mod.rs +0 -4147
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Graphics/mod.rs +0 -12
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Management/MobileDeviceManagementRegistration/mod.rs +0 -101
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Management/mod.rs +0 -2
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Media/Audio/mod.rs +0 -2052
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Media/DxMediaObjects/mod.rs +0 -94
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Media/KernelStreaming/mod.rs +0 -5281
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Media/Multimedia/mod.rs +0 -6442
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Media/Streaming/mod.rs +0 -117
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Media/WindowsMediaFormat/mod.rs +0 -910
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Media/mod.rs +0 -187
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/NetworkManagement/Dhcp/mod.rs +0 -1926
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/NetworkManagement/Dns/mod.rs +0 -1564
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/NetworkManagement/InternetConnectionWizard/mod.rs +0 -22
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/NetworkManagement/IpHelper/mod.rs +0 -3004
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/NetworkManagement/Multicast/mod.rs +0 -59
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/NetworkManagement/Ndis/mod.rs +0 -3334
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/NetworkManagement/NetBios/mod.rs +0 -211
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/NetworkManagement/NetManagement/mod.rs +0 -4814
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/NetworkManagement/NetShell/mod.rs +0 -160
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/NetworkManagement/NetworkDiagnosticsFramework/mod.rs +0 -222
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/NetworkManagement/P2P/mod.rs +0 -1196
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/NetworkManagement/QoS/mod.rs +0 -1447
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/NetworkManagement/Rras/mod.rs +0 -3212
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/NetworkManagement/Snmp/mod.rs +0 -381
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/NetworkManagement/WNet/mod.rs +0 -363
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/NetworkManagement/WebDav/mod.rs +0 -47
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/NetworkManagement/WiFi/mod.rs +0 -4311
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/NetworkManagement/WindowsConnectionManager/mod.rs +0 -119
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/NetworkManagement/WindowsFilteringPlatform/mod.rs +0 -3818
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/NetworkManagement/WindowsFirewall/mod.rs +0 -281
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/NetworkManagement/WindowsNetworkVirtualization/mod.rs +0 -104
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/NetworkManagement/mod.rs +0 -42
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Networking/ActiveDirectory/mod.rs +0 -2383
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Networking/Clustering/mod.rs +0 -3900
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Networking/HttpServer/mod.rs +0 -1239
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Networking/Ldap/mod.rs +0 -817
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Networking/WebSocket/mod.rs +0 -88
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Networking/WinHttp/mod.rs +0 -1109
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Networking/WinInet/mod.rs +0 -2168
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Networking/WinSock/mod.rs +0 -4786
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Networking/WindowsWebServices/mod.rs +0 -3480
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Networking/mod.rs +0 -18
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Security/AppLocker/mod.rs +0 -172
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Security/Authentication/Identity/mod.rs +0 -5701
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Security/Authentication/mod.rs +0 -2
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Security/Authorization/mod.rs +0 -984
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Security/Credentials/mod.rs +0 -797
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Security/Cryptography/Catalog/mod.rs +0 -151
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Security/Cryptography/Certificates/mod.rs +0 -2315
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Security/Cryptography/Sip/mod.rs +0 -155
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Security/Cryptography/UI/mod.rs +0 -545
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Security/Cryptography/mod.rs +0 -8528
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Security/DiagnosticDataQuery/mod.rs +0 -156
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Security/DirectoryServices/mod.rs +0 -19
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Security/EnterpriseData/mod.rs +0 -36
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Security/ExtensibleAuthenticationProtocol/mod.rs +0 -998
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Security/Isolation/mod.rs +0 -20
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Security/LicenseProtection/mod.rs +0 -8
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Security/NetworkAccessProtection/mod.rs +0 -149
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Security/WinTrust/mod.rs +0 -863
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Security/WinWlx/mod.rs +0 -335
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Security/mod.rs +0 -1156
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Storage/Cabinets/mod.rs +0 -209
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Storage/CloudFilters/mod.rs +0 -666
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Storage/Compression/mod.rs +0 -36
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Storage/DistributedFileSystem/mod.rs +0 -342
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Storage/FileHistory/mod.rs +0 -97
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Storage/FileSystem/mod.rs +0 -3699
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Storage/Imapi/mod.rs +0 -697
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Storage/IndexServer/mod.rs +0 -279
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Storage/InstallableFileSystems/mod.rs +0 -331
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Storage/IscsiDisc/mod.rs +0 -1291
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Storage/Jet/mod.rs +0 -2593
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Storage/Nvme/mod.rs +0 -3428
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Storage/OfflineFiles/mod.rs +0 -276
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Storage/OperationRecorder/mod.rs +0 -20
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Storage/Packaging/Appx/mod.rs +0 -377
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Storage/Packaging/mod.rs +0 -2
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Storage/ProjectedFileSystem/mod.rs +0 -246
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Storage/StructuredStorage/mod.rs +0 -3
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Storage/Vhd/mod.rs +0 -720
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Storage/Xps/mod.rs +0 -415
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Storage/mod.rs +0 -38
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/AddressBook/mod.rs +0 -938
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Antimalware/mod.rs +0 -112
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/ApplicationInstallationAndServicing/mod.rs +0 -2145
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/ApplicationVerifier/mod.rs +0 -58
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/ClrHosting/mod.rs +0 -322
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Com/Marshal/mod.rs +0 -172
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Com/StructuredStorage/mod.rs +0 -655
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Com/Urlmon/mod.rs +0 -905
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Com/mod.rs +0 -1227
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/ComponentServices/mod.rs +0 -574
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Console/mod.rs +0 -373
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/CorrelationVector/mod.rs +0 -15
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/DataExchange/mod.rs +0 -428
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/DeploymentServices/mod.rs +0 -565
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/DeveloperLicensing/mod.rs +0 -3
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Diagnostics/Ceip/mod.rs +0 -1
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Diagnostics/Debug/Extensions/mod.rs +0 -3710
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Diagnostics/Debug/mod.rs +0 -5557
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Diagnostics/Etw/mod.rs +0 -2042
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Diagnostics/ProcessSnapshotting/mod.rs +0 -293
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Diagnostics/ToolHelp/mod.rs +0 -119
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Diagnostics/TraceLogging/mod.rs +0 -105
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Diagnostics/mod.rs +0 -12
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/DistributedTransactionCoordinator/mod.rs +0 -308
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Environment/mod.rs +0 -202
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/ErrorReporting/mod.rs +0 -393
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/EventCollector/mod.rs +0 -117
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/EventLog/mod.rs +0 -379
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/EventNotificationService/mod.rs +0 -35
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/GroupPolicy/mod.rs +0 -424
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/HostCompute/mod.rs +0 -1
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/HostComputeNetwork/mod.rs +0 -86
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/HostComputeSystem/mod.rs +0 -171
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Hypervisor/mod.rs +0 -1983
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/IO/mod.rs +0 -53
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Iis/mod.rs +0 -1411
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Ioctl/mod.rs +0 -6216
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/JobObjects/mod.rs +0 -434
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Js/mod.rs +0 -154
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Kernel/mod.rs +0 -295
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/LibraryLoader/mod.rs +0 -106
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Mailslots/mod.rs +0 -6
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Mapi/mod.rs +0 -150
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Memory/NonVolatile/mod.rs +0 -20
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Memory/mod.rs +0 -464
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/MessageQueuing/mod.rs +0 -712
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/MixedReality/mod.rs +0 -14
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Ole/mod.rs +0 -2599
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/PasswordManagement/mod.rs +0 -22
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Performance/HardwareCounterProfiling/mod.rs +0 -27
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Performance/mod.rs +0 -1091
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Pipes/mod.rs +0 -42
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Power/mod.rs +0 -1413
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/ProcessStatus/mod.rs +0 -200
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Recovery/mod.rs +0 -15
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Registry/mod.rs +0 -1114
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/RemoteDesktop/mod.rs +0 -1771
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/RemoteManagement/mod.rs +0 -935
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/RestartManager/mod.rs +0 -86
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Restore/mod.rs +0 -66
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Rpc/mod.rs +0 -2668
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Search/Common/mod.rs +0 -21
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Search/mod.rs +0 -5993
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/SecurityCenter/mod.rs +0 -41
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Services/mod.rs +0 -587
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/SetupAndMigration/mod.rs +0 -4
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Shutdown/mod.rs +0 -111
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/StationsAndDesktops/mod.rs +0 -99
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/SubsystemForLinux/mod.rs +0 -12
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/SystemInformation/mod.rs +0 -751
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/SystemServices/mod.rs +0 -4541
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Threading/mod.rs +0 -1148
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Time/mod.rs +0 -50
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/TpmBaseServices/mod.rs +0 -89
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/UserAccessLogging/mod.rs +0 -17
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Variant/mod.rs +0 -321
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/VirtualDosMachines/mod.rs +0 -297
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/WindowsProgramming/mod.rs +0 -1633
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Wmi/mod.rs +0 -2435
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/mod.rs +0 -132
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/UI/Accessibility/mod.rs +0 -1788
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/UI/ColorSystem/mod.rs +0 -702
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/UI/Controls/Dialogs/mod.rs +0 -1128
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/UI/Controls/mod.rs +0 -7276
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/UI/HiDpi/mod.rs +0 -66
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/UI/Input/Ime/mod.rs +0 -1394
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/UI/Input/KeyboardAndMouse/mod.rs +0 -765
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/UI/Input/Pointer/mod.rs +0 -168
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/UI/Input/Touch/mod.rs +0 -89
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/UI/Input/XboxController/mod.rs +0 -151
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/UI/Input/mod.rs +0 -182
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/UI/InteractionContext/mod.rs +0 -230
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/UI/Magnification/mod.rs +0 -52
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/UI/Shell/Common/mod.rs +0 -104
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/UI/Shell/PropertiesSystem/mod.rs +0 -322
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/UI/Shell/mod.rs +0 -6704
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/UI/TabletPC/mod.rs +0 -1537
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/UI/TextServices/mod.rs +0 -794
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/UI/WindowsAndMessaging/mod.rs +0 -3760
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/UI/mod.rs +0 -22
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Web/InternetExplorer/mod.rs +0 -628
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Web/mod.rs +0 -2
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/mod.rs +0 -30
- data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/mod.rs +0 -4
- data/ext/cargo-vendor/windows-sys-0.59.0/src/core/literals.rs +0 -114
- data/ext/cargo-vendor/windows-sys-0.59.0/src/core/mod.rs +0 -33
- data/ext/cargo-vendor/windows-sys-0.59.0/src/includes/Win32/UI/WindowsAndMessaging/WindowLong.rs +0 -8
- data/ext/cargo-vendor/windows-sys-0.59.0/src/lib.rs +0 -17
- /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/.github/workflows/audit.yml +0 -0
- /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/.github/workflows/ci.yml +0 -0
- /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/.github/workflows/dotslash-config.json +0 -0
- /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/.rustfmt.toml +0 -0
- /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/.rusty-hook.toml +0 -0
- /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/dev/run_benchmarks_for_file.sh +0 -0
- /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/src/cache/mod.rs +0 -0
- /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/src/cache/noop.rs +0 -0
- /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/src/ownership/file_owner_finder.rs +0 -0
- /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/src/ownership/mapper/directory_mapper.rs +0 -0
- /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/src/ownership/mapper/escaper.rs +0 -0
- /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/src/ownership/mapper/team_gem_mapper.rs +0 -0
- /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/src/ownership/mapper/team_glob_mapper.rs +0 -0
- /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/src/ownership/mapper/team_yml_mapper.rs +0 -0
- /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/cache_test.rs +0 -0
- /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/invalid_project/.github/CODEOWNERS +0 -0
- /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/invalid_project/config/code_ownership.yml +0 -0
- /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/invalid_project/config/teams/payments.yml +0 -0
- /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/invalid_project/config/teams/payroll.yml +0 -0
- /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/invalid_project/gems/payroll_calculator/calculator.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/invalid_project/ruby/app/models/bank_account.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/invalid_project/ruby/app/models/blockchain.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/invalid_project/ruby/app/models/payroll.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/invalid_project/ruby/app/payments/nacha.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/invalid_project/ruby/app/services/.codeowner +0 -0
- /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/invalid_project/ruby/app/services/multi_owned.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/invalid_project/ruby/app/unowned.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/invalid_project/ruby/packages/payroll_flow/package.yml +0 -0
- /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/multiple-directory-owners/.github/CODEOWNERS +0 -0
- /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/multiple-directory-owners/app/consumers/.codeowner +0 -0
- /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/multiple-directory-owners/app/consumers/deep/nesting/nestdir/deep_file.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/multiple-directory-owners/app/consumers/one_owner.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/multiple-directory-owners/app/services/.codeowner +0 -0
- /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/multiple-directory-owners/app/services/exciting/.codeowner +0 -0
- /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/multiple-directory-owners/app/services/exciting/some_other_file.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/multiple-directory-owners/config/teams/bar.yml +0 -0
- /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/multiple-directory-owners/config/teams/foo.yml +0 -0
- /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/valid_project/.ignore +0 -0
- /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/valid_project/config/teams/payments.yml +0 -0
- /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/valid_project/config/teams/payroll.yml +0 -0
- /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/valid_project/config/teams/ux.yml +0 -0
- /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/valid_project/gems/payroll_calculator/calculator.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/valid_project/gems/pets/dog.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/valid_project/javascript/packages/PayrollFlow/index.tsx +0 -0
- /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/valid_project/javascript/packages/PayrollFlow/package.json +0 -0
- /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/valid_project/javascript/packages/items/(special)/.codeowner +0 -0
- /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/valid_project/javascript/packages/items/(special)/pay.ts +0 -0
- /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/valid_project/javascript/packages/items/.codeowner +0 -0
- /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/valid_project/javascript/packages/items/item.ts +0 -0
- /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/valid_project/ruby/app/models/bank_account.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/valid_project/ruby/app/payments/foo/.codeowner +0 -0
- /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/valid_project/ruby/app/payments/foo/ownedby_payroll.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/valid_project/ruby/app/payments/nacha.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/valid_project/ruby/app/payroll/.codeowner +0 -0
- /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/valid_project/ruby/app/payroll/payroll.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/valid_project/ruby/ignored_files/git_ignored.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/valid_project/ruby/packages/payroll_flow/package.yml +0 -0
- /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/valid_project/should_be_ignored/an_ignored_file.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.2.7/tmp/.gitkeep → codeowners-0.2.17/tests/fixtures/valid_project_with_overrides/packs/games/app/services/stats.rb} +0 -0
- /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/git_stage_test.rs +0 -0
- /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/invalid_project_structure_test.rs +0 -0
- /data/ext/cargo-vendor/{glob-0.3.2 → glob-0.3.3}/.github/dependabot.yml +0 -0
- /data/ext/cargo-vendor/{glob-0.3.2 → glob-0.3.3}/.github/workflows/publish.yml +0 -0
- /data/ext/cargo-vendor/{glob-0.3.2 → glob-0.3.3}/LICENSE-APACHE +0 -0
- /data/ext/cargo-vendor/{glob-0.3.2 → glob-0.3.3}/LICENSE-MIT +0 -0
- /data/ext/cargo-vendor/{glob-0.3.2 → glob-0.3.3}/triagebot.toml +0 -0
- /data/ext/cargo-vendor/{indexmap-2.10.0 → indexmap-2.11.0}/.rustfmt.toml +0 -0
- /data/ext/cargo-vendor/{indexmap-2.10.0 → indexmap-2.11.0}/LICENSE-APACHE +0 -0
- /data/ext/cargo-vendor/{indexmap-2.10.0 → indexmap-2.11.0}/LICENSE-MIT +0 -0
- /data/ext/cargo-vendor/{indexmap-2.10.0 → indexmap-2.11.0}/README.md +0 -0
- /data/ext/cargo-vendor/{indexmap-2.10.0 → indexmap-2.11.0}/benches/bench.rs +0 -0
- /data/ext/cargo-vendor/{indexmap-2.10.0 → indexmap-2.11.0}/benches/faststring.rs +0 -0
- /data/ext/cargo-vendor/{indexmap-2.10.0 → indexmap-2.11.0}/src/arbitrary.rs +0 -0
- /data/ext/cargo-vendor/{indexmap-2.10.0 → indexmap-2.11.0}/src/borsh.rs +0 -0
- /data/ext/cargo-vendor/{indexmap-2.10.0 → indexmap-2.11.0}/src/macros.rs +0 -0
- /data/ext/cargo-vendor/{indexmap-2.10.0 → indexmap-2.11.0}/src/map/core/extract.rs +0 -0
- /data/ext/cargo-vendor/{indexmap-2.10.0 → indexmap-2.11.0}/src/map/core/raw_entry_v1.rs +0 -0
- /data/ext/cargo-vendor/{indexmap-2.10.0 → indexmap-2.11.0}/src/map/iter.rs +0 -0
- /data/ext/cargo-vendor/{indexmap-2.10.0 → indexmap-2.11.0}/src/map/serde_seq.rs +0 -0
- /data/ext/cargo-vendor/{indexmap-2.10.0 → indexmap-2.11.0}/src/rayon/mod.rs +0 -0
- /data/ext/cargo-vendor/{indexmap-2.10.0 → indexmap-2.11.0}/src/serde.rs +0 -0
- /data/ext/cargo-vendor/{indexmap-2.10.0 → indexmap-2.11.0}/src/set/iter.rs +0 -0
- /data/ext/cargo-vendor/{indexmap-2.10.0 → indexmap-2.11.0}/src/util.rs +0 -0
- /data/ext/cargo-vendor/{indexmap-2.10.0 → indexmap-2.11.0}/tests/equivalent_trait.rs +0 -0
- /data/ext/cargo-vendor/{indexmap-2.10.0 → indexmap-2.11.0}/tests/macros_full_path.rs +0 -0
- /data/ext/cargo-vendor/{indexmap-2.10.0 → indexmap-2.11.0}/tests/tests.rs +0 -0
- /data/ext/cargo-vendor/{rayon-1.10.0 → rayon-1.11.0}/LICENSE-APACHE +0 -0
- /data/ext/cargo-vendor/{rayon-1.10.0 → rayon-1.11.0}/LICENSE-MIT +0 -0
- /data/ext/cargo-vendor/{rayon-1.10.0 → rayon-1.11.0}/src/compile_fail/cannot_collect_filtermap_data.rs +0 -0
- /data/ext/cargo-vendor/{rayon-1.10.0 → rayon-1.11.0}/src/compile_fail/cannot_zip_filtered_data.rs +0 -0
- /data/ext/cargo-vendor/{rayon-1.10.0 → rayon-1.11.0}/src/compile_fail/cell_par_iter.rs +0 -0
- /data/ext/cargo-vendor/{rayon-1.10.0 → rayon-1.11.0}/src/compile_fail/mod.rs +0 -0
- /data/ext/cargo-vendor/{rayon-1.10.0 → rayon-1.11.0}/src/compile_fail/must_use.rs +0 -0
- /data/ext/cargo-vendor/{rayon-1.10.0 → rayon-1.11.0}/src/compile_fail/no_send_par_iter.rs +0 -0
- /data/ext/cargo-vendor/{rayon-1.10.0 → rayon-1.11.0}/src/compile_fail/rc_par_iter.rs +0 -0
- /data/ext/cargo-vendor/{rayon-1.10.0 → rayon-1.11.0}/src/delegate.rs +0 -0
- /data/ext/cargo-vendor/{rayon-1.10.0 → rayon-1.11.0}/src/iter/collect/consumer.rs +0 -0
- /data/ext/cargo-vendor/{rayon-1.10.0 → rayon-1.11.0}/src/iter/extend.rs +0 -0
- /data/ext/cargo-vendor/{rayon-1.10.0 → rayon-1.11.0}/src/iter/find.rs +0 -0
- /data/ext/cargo-vendor/{rayon-1.10.0 → rayon-1.11.0}/src/iter/for_each.rs +0 -0
- /data/ext/cargo-vendor/{rayon-1.10.0 → rayon-1.11.0}/src/iter/noop.rs +0 -0
- /data/ext/cargo-vendor/{rayon-1.10.0 → rayon-1.11.0}/src/iter/plumbing/README.md +0 -0
- /data/ext/cargo-vendor/{rayon-1.10.0 → rayon-1.11.0}/src/iter/product.rs +0 -0
- /data/ext/cargo-vendor/{rayon-1.10.0 → rayon-1.11.0}/src/iter/reduce.rs +0 -0
- /data/ext/cargo-vendor/{rayon-1.10.0 → rayon-1.11.0}/src/iter/sum.rs +0 -0
- /data/ext/cargo-vendor/{rayon-1.10.0 → rayon-1.11.0}/src/iter/try_reduce.rs +0 -0
- /data/ext/cargo-vendor/{rayon-1.10.0 → rayon-1.11.0}/src/iter/try_reduce_with.rs +0 -0
- /data/ext/cargo-vendor/{rayon-1.10.0 → rayon-1.11.0}/src/par_either.rs +0 -0
- /data/ext/cargo-vendor/{rayon-1.10.0 → rayon-1.11.0}/src/prelude.rs +0 -0
- /data/ext/cargo-vendor/{rayon-1.10.0 → rayon-1.11.0}/src/private.rs +0 -0
- /data/ext/cargo-vendor/{rayon-1.10.0 → rayon-1.11.0}/src/split_producer.rs +0 -0
- /data/ext/cargo-vendor/{rayon-1.10.0 → rayon-1.11.0}/src/string.rs +0 -0
- /data/ext/cargo-vendor/{rayon-1.10.0 → rayon-1.11.0}/tests/chars.rs +0 -0
- /data/ext/cargo-vendor/{rayon-1.10.0 → rayon-1.11.0}/tests/cross-pool.rs +0 -0
- /data/ext/cargo-vendor/{rayon-1.10.0 → rayon-1.11.0}/tests/drain_vec.rs +0 -0
- /data/ext/cargo-vendor/{rayon-1.10.0 → rayon-1.11.0}/tests/intersperse.rs +0 -0
- /data/ext/cargo-vendor/{rayon-1.10.0 → rayon-1.11.0}/tests/issue671-unzip.rs +0 -0
- /data/ext/cargo-vendor/{rayon-1.10.0 → rayon-1.11.0}/tests/issue671.rs +0 -0
- /data/ext/cargo-vendor/{rayon-1.10.0 → rayon-1.11.0}/tests/iter_panic.rs +0 -0
- /data/ext/cargo-vendor/{rayon-1.10.0 → rayon-1.11.0}/tests/octillion.rs +0 -0
- /data/ext/cargo-vendor/{rayon-1.10.0 → rayon-1.11.0}/tests/par_bridge_recursion.rs +0 -0
- /data/ext/cargo-vendor/{rayon-core-1.12.1 → rayon-core-1.13.0}/LICENSE-APACHE +0 -0
- /data/ext/cargo-vendor/{rayon-core-1.12.1 → rayon-core-1.13.0}/LICENSE-MIT +0 -0
- /data/ext/cargo-vendor/{rayon-core-1.12.1 → rayon-core-1.13.0}/build.rs +0 -0
- /data/ext/cargo-vendor/{rayon-core-1.12.1 → rayon-core-1.13.0}/src/broadcast/test.rs +0 -0
- /data/ext/cargo-vendor/{rayon-core-1.12.1 → rayon-core-1.13.0}/src/compile_fail/mod.rs +0 -0
- /data/ext/cargo-vendor/{rayon-core-1.12.1 → rayon-core-1.13.0}/src/compile_fail/quicksort_race1.rs +0 -0
- /data/ext/cargo-vendor/{rayon-core-1.12.1 → rayon-core-1.13.0}/src/compile_fail/quicksort_race2.rs +0 -0
- /data/ext/cargo-vendor/{rayon-core-1.12.1 → rayon-core-1.13.0}/src/compile_fail/quicksort_race3.rs +0 -0
- /data/ext/cargo-vendor/{rayon-core-1.12.1 → rayon-core-1.13.0}/src/compile_fail/rc_return.rs +0 -0
- /data/ext/cargo-vendor/{rayon-core-1.12.1 → rayon-core-1.13.0}/src/compile_fail/rc_upvar.rs +0 -0
- /data/ext/cargo-vendor/{rayon-core-1.12.1 → rayon-core-1.13.0}/src/compile_fail/scope_join_bad.rs +0 -0
- /data/ext/cargo-vendor/{rayon-core-1.12.1 → rayon-core-1.13.0}/src/job.rs +0 -0
- /data/ext/cargo-vendor/{rayon-core-1.12.1 → rayon-core-1.13.0}/src/private.rs +0 -0
- /data/ext/cargo-vendor/{rayon-core-1.12.1 → rayon-core-1.13.0}/src/unwind.rs +0 -0
- /data/ext/cargo-vendor/{rayon-core-1.12.1 → rayon-core-1.13.0}/tests/double_init_fail.rs +0 -0
- /data/ext/cargo-vendor/{rayon-core-1.12.1 → rayon-core-1.13.0}/tests/init_zero_threads.rs +0 -0
- /data/ext/cargo-vendor/{rayon-core-1.12.1 → rayon-core-1.13.0}/tests/scope_join.rs +0 -0
- /data/ext/cargo-vendor/{rayon-core-1.12.1 → rayon-core-1.13.0}/tests/scoped_threadpool.rs +0 -0
- /data/ext/cargo-vendor/{rayon-core-1.12.1 → rayon-core-1.13.0}/tests/simple_panic.rs +0 -0
- /data/ext/cargo-vendor/{rayon-core-1.12.1 → rayon-core-1.13.0}/tests/stack_overflow_crash.rs +0 -0
- /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/CONTRIBUTING.md +0 -0
- /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/LICENSE-APACHE +0 -0
- /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/LICENSE-MIT +0 -0
- /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/README.md +0 -0
- /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/build.rs +0 -0
- /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/src/de.rs +0 -0
- /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/src/error.rs +0 -0
- /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/src/io/core.rs +0 -0
- /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/src/io/mod.rs +0 -0
- /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/src/iter.rs +0 -0
- /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/src/lexical/algorithm.rs +0 -0
- /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/src/lexical/bhcomp.rs +0 -0
- /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/src/lexical/bignum.rs +0 -0
- /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/src/lexical/cached.rs +0 -0
- /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/src/lexical/cached_float80.rs +0 -0
- /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/src/lexical/digit.rs +0 -0
- /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/src/lexical/errors.rs +0 -0
- /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/src/lexical/exponent.rs +0 -0
- /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/src/lexical/float.rs +0 -0
- /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/src/lexical/large_powers.rs +0 -0
- /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/src/lexical/large_powers32.rs +0 -0
- /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/src/lexical/large_powers64.rs +0 -0
- /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/src/lexical/math.rs +0 -0
- /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/src/lexical/mod.rs +0 -0
- /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/src/lexical/num.rs +0 -0
- /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/src/lexical/parse.rs +0 -0
- /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/src/lexical/rounding.rs +0 -0
- /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/src/lexical/shift.rs +0 -0
- /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/src/lexical/small_powers.rs +0 -0
- /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/src/macros.rs +0 -0
- /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/src/number.rs +0 -0
- /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/src/raw.rs +0 -0
- /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/src/read.rs +0 -0
- /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/src/value/from.rs +0 -0
- /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/src/value/index.rs +0 -0
- /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/src/value/mod.rs +0 -0
- /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/src/value/partial_eq.rs +0 -0
- /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/src/value/ser.rs +0 -0
- /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/tests/compiletest.rs +0 -0
- /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/tests/debug.rs +0 -0
- /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/tests/lexical/algorithm.rs +0 -0
- /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/tests/lexical/exponent.rs +0 -0
- /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/tests/lexical/float.rs +0 -0
- /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/tests/lexical/math.rs +0 -0
- /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/tests/lexical/num.rs +0 -0
- /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/tests/lexical/parse.rs +0 -0
- /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/tests/lexical/rounding.rs +0 -0
- /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/tests/lexical.rs +0 -0
- /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/tests/macros/mod.rs +0 -0
- /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/tests/map.rs +0 -0
- /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/tests/regression/issue1004.rs +0 -0
- /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/tests/regression/issue520.rs +0 -0
- /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/tests/regression/issue795.rs +0 -0
- /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/tests/regression/issue845.rs +0 -0
- /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/tests/regression/issue953.rs +0 -0
- /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/tests/regression.rs +0 -0
- /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/tests/stream.rs +0 -0
- /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/tests/test.rs +0 -0
- /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/tests/ui/missing_colon.rs +0 -0
- /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/tests/ui/missing_colon.stderr +0 -0
- /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/tests/ui/missing_comma.rs +0 -0
- /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/tests/ui/missing_comma.stderr +0 -0
- /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/tests/ui/missing_value.rs +0 -0
- /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/tests/ui/missing_value.stderr +0 -0
- /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/tests/ui/not_found.rs +0 -0
- /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/tests/ui/not_found.stderr +0 -0
- /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/tests/ui/parse_expr.rs +0 -0
- /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/tests/ui/parse_expr.stderr +0 -0
- /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/tests/ui/parse_key.rs +0 -0
- /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/tests/ui/parse_key.stderr +0 -0
- /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/tests/ui/unexpected_after_array_element.rs +0 -0
- /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/tests/ui/unexpected_after_array_element.stderr +0 -0
- /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/tests/ui/unexpected_after_map_entry.rs +0 -0
- /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/tests/ui/unexpected_after_map_entry.stderr +0 -0
- /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/tests/ui/unexpected_colon.rs +0 -0
- /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/tests/ui/unexpected_colon.stderr +0 -0
- /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/tests/ui/unexpected_comma.rs +0 -0
- /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/tests/ui/unexpected_comma.stderr +0 -0
- /data/ext/cargo-vendor/{tempfile-3.20.0 → tempfile-3.21.0}/.github/dependabot.yml +0 -0
- /data/ext/cargo-vendor/{tempfile-3.20.0 → tempfile-3.21.0}/LICENSE-APACHE +0 -0
- /data/ext/cargo-vendor/{tempfile-3.20.0 → tempfile-3.21.0}/LICENSE-MIT +0 -0
- /data/ext/cargo-vendor/{tempfile-3.20.0 → tempfile-3.21.0}/README.md +0 -0
- /data/ext/cargo-vendor/{tempfile-3.20.0 → tempfile-3.21.0}/deny.toml +0 -0
- /data/ext/cargo-vendor/{tempfile-3.20.0 → tempfile-3.21.0}/src/dir/imp/any.rs +0 -0
- /data/ext/cargo-vendor/{tempfile-3.20.0 → tempfile-3.21.0}/src/dir/imp/mod.rs +0 -0
- /data/ext/cargo-vendor/{tempfile-3.20.0 → tempfile-3.21.0}/src/dir/imp/unix.rs +0 -0
- /data/ext/cargo-vendor/{tempfile-3.20.0 → tempfile-3.21.0}/src/dir/mod.rs +0 -0
- /data/ext/cargo-vendor/{tempfile-3.20.0 → tempfile-3.21.0}/src/env.rs +0 -0
- /data/ext/cargo-vendor/{tempfile-3.20.0 → tempfile-3.21.0}/src/error.rs +0 -0
- /data/ext/cargo-vendor/{tempfile-3.20.0 → tempfile-3.21.0}/src/file/imp/mod.rs +0 -0
- /data/ext/cargo-vendor/{tempfile-3.20.0 → tempfile-3.21.0}/src/file/imp/other.rs +0 -0
- /data/ext/cargo-vendor/{tempfile-3.20.0 → tempfile-3.21.0}/src/file/imp/unix.rs +0 -0
- /data/ext/cargo-vendor/{tempfile-3.20.0 → tempfile-3.21.0}/src/file/imp/windows.rs +0 -0
- /data/ext/cargo-vendor/{tempfile-3.20.0 → tempfile-3.21.0}/src/file/mod.rs +0 -0
- /data/ext/cargo-vendor/{tempfile-3.20.0 → tempfile-3.21.0}/src/lib.rs +0 -0
- /data/ext/cargo-vendor/{tempfile-3.20.0 → tempfile-3.21.0}/src/spooled.rs +0 -0
- /data/ext/cargo-vendor/{tempfile-3.20.0 → tempfile-3.21.0}/src/util.rs +0 -0
- /data/ext/cargo-vendor/{tempfile-3.20.0 → tempfile-3.21.0}/tests/env.rs +0 -0
- /data/ext/cargo-vendor/{tempfile-3.20.0 → tempfile-3.21.0}/tests/namedtempfile.rs +0 -0
- /data/ext/cargo-vendor/{tempfile-3.20.0 → tempfile-3.21.0}/tests/spooled.rs +0 -0
- /data/ext/cargo-vendor/{tempfile-3.20.0 → tempfile-3.21.0}/tests/tempdir.rs +0 -0
- /data/ext/cargo-vendor/{tempfile-3.20.0 → tempfile-3.21.0}/tests/tempfile.rs +0 -0
- /data/ext/cargo-vendor/{winapi-util-0.1.9 → winapi-util-0.1.10}/.github/workflows/ci.yml +0 -0
- /data/ext/cargo-vendor/{winapi-util-0.1.9 → winapi-util-0.1.10}/COPYING +0 -0
- /data/ext/cargo-vendor/{winapi-util-0.1.9 → winapi-util-0.1.10}/LICENSE-MIT +0 -0
- /data/ext/cargo-vendor/{winapi-util-0.1.9 → winapi-util-0.1.10}/README.md +0 -0
- /data/ext/cargo-vendor/{winapi-util-0.1.9 → winapi-util-0.1.10}/UNLICENSE +0 -0
- /data/ext/cargo-vendor/{winapi-util-0.1.9 → winapi-util-0.1.10}/rustfmt.toml +0 -0
- /data/ext/cargo-vendor/{winapi-util-0.1.9 → winapi-util-0.1.10}/src/console.rs +0 -0
- /data/ext/cargo-vendor/{winapi-util-0.1.9 → winapi-util-0.1.10}/src/file.rs +0 -0
- /data/ext/cargo-vendor/{winapi-util-0.1.9 → winapi-util-0.1.10}/src/lib.rs +0 -0
- /data/ext/cargo-vendor/{winapi-util-0.1.9 → winapi-util-0.1.10}/src/sysinfo.rs +0 -0
- /data/ext/cargo-vendor/{winapi-util-0.1.9 → winapi-util-0.1.10}/src/win.rs +0 -0
@@ -0,0 +1,1242 @@
|
|
1
|
+
//! Parallel iterator types for [slices]
|
2
|
+
//!
|
3
|
+
//! You will rarely need to interact with this module directly unless you need
|
4
|
+
//! to name one of the iterator types.
|
5
|
+
//!
|
6
|
+
//! [slices]: std::slice
|
7
|
+
|
8
|
+
mod chunk_by;
|
9
|
+
mod chunks;
|
10
|
+
mod rchunks;
|
11
|
+
mod sort;
|
12
|
+
|
13
|
+
mod test;
|
14
|
+
|
15
|
+
use self::sort::par_mergesort;
|
16
|
+
use self::sort::par_quicksort;
|
17
|
+
use crate::iter::plumbing::*;
|
18
|
+
use crate::iter::*;
|
19
|
+
use crate::split_producer::*;
|
20
|
+
|
21
|
+
use std::cmp::Ordering;
|
22
|
+
use std::fmt::{self, Debug};
|
23
|
+
|
24
|
+
pub use self::chunk_by::{ChunkBy, ChunkByMut};
|
25
|
+
pub use self::chunks::{Chunks, ChunksExact, ChunksExactMut, ChunksMut};
|
26
|
+
pub use self::rchunks::{RChunks, RChunksExact, RChunksExactMut, RChunksMut};
|
27
|
+
|
28
|
+
/// Parallel extensions for slices.
|
29
|
+
pub trait ParallelSlice<T: Sync> {
|
30
|
+
/// Returns a plain slice, which is used to implement the rest of the
|
31
|
+
/// parallel methods.
|
32
|
+
fn as_parallel_slice(&self) -> &[T];
|
33
|
+
|
34
|
+
/// Returns a parallel iterator over subslices separated by elements that
|
35
|
+
/// match the separator.
|
36
|
+
///
|
37
|
+
/// # Examples
|
38
|
+
///
|
39
|
+
/// ```
|
40
|
+
/// use rayon::prelude::*;
|
41
|
+
/// let products: Vec<_> = [1, 2, 3, 0, 2, 4, 8, 0, 3, 6, 9]
|
42
|
+
/// .par_split(|i| *i == 0)
|
43
|
+
/// .map(|numbers| numbers.iter().product::<i32>())
|
44
|
+
/// .collect();
|
45
|
+
/// assert_eq!(products, [6, 64, 162]);
|
46
|
+
/// ```
|
47
|
+
fn par_split<P>(&self, separator: P) -> Split<'_, T, P>
|
48
|
+
where
|
49
|
+
P: Fn(&T) -> bool + Sync + Send,
|
50
|
+
{
|
51
|
+
Split {
|
52
|
+
slice: self.as_parallel_slice(),
|
53
|
+
separator,
|
54
|
+
}
|
55
|
+
}
|
56
|
+
|
57
|
+
/// Returns a parallel iterator over subslices separated by elements that
|
58
|
+
/// match the separator, including the matched part as a terminator.
|
59
|
+
///
|
60
|
+
/// # Examples
|
61
|
+
///
|
62
|
+
/// ```
|
63
|
+
/// use rayon::prelude::*;
|
64
|
+
/// let lengths: Vec<_> = [1, 2, 3, 0, 2, 4, 8, 0, 3, 6, 9]
|
65
|
+
/// .par_split_inclusive(|i| *i == 0)
|
66
|
+
/// .map(|numbers| numbers.len())
|
67
|
+
/// .collect();
|
68
|
+
/// assert_eq!(lengths, [4, 4, 3]);
|
69
|
+
/// ```
|
70
|
+
fn par_split_inclusive<P>(&self, separator: P) -> SplitInclusive<'_, T, P>
|
71
|
+
where
|
72
|
+
P: Fn(&T) -> bool + Sync + Send,
|
73
|
+
{
|
74
|
+
SplitInclusive {
|
75
|
+
slice: self.as_parallel_slice(),
|
76
|
+
separator,
|
77
|
+
}
|
78
|
+
}
|
79
|
+
|
80
|
+
/// Returns a parallel iterator over all contiguous windows of length
|
81
|
+
/// `window_size`. The windows overlap.
|
82
|
+
///
|
83
|
+
/// # Examples
|
84
|
+
///
|
85
|
+
/// ```
|
86
|
+
/// use rayon::prelude::*;
|
87
|
+
/// let windows: Vec<_> = [1, 2, 3].par_windows(2).collect();
|
88
|
+
/// assert_eq!(vec![[1, 2], [2, 3]], windows);
|
89
|
+
/// ```
|
90
|
+
fn par_windows(&self, window_size: usize) -> Windows<'_, T> {
|
91
|
+
Windows {
|
92
|
+
window_size,
|
93
|
+
slice: self.as_parallel_slice(),
|
94
|
+
}
|
95
|
+
}
|
96
|
+
|
97
|
+
/// Returns a parallel iterator over at most `chunk_size` elements of
|
98
|
+
/// `self` at a time. The chunks do not overlap.
|
99
|
+
///
|
100
|
+
/// If the number of elements in the iterator is not divisible by
|
101
|
+
/// `chunk_size`, the last chunk may be shorter than `chunk_size`. All
|
102
|
+
/// other chunks will have that exact length.
|
103
|
+
///
|
104
|
+
/// # Examples
|
105
|
+
///
|
106
|
+
/// ```
|
107
|
+
/// use rayon::prelude::*;
|
108
|
+
/// let chunks: Vec<_> = [1, 2, 3, 4, 5].par_chunks(2).collect();
|
109
|
+
/// assert_eq!(chunks, vec![&[1, 2][..], &[3, 4], &[5]]);
|
110
|
+
/// ```
|
111
|
+
#[track_caller]
|
112
|
+
fn par_chunks(&self, chunk_size: usize) -> Chunks<'_, T> {
|
113
|
+
assert!(chunk_size != 0, "chunk_size must not be zero");
|
114
|
+
Chunks::new(chunk_size, self.as_parallel_slice())
|
115
|
+
}
|
116
|
+
|
117
|
+
/// Returns a parallel iterator over `chunk_size` elements of
|
118
|
+
/// `self` at a time. The chunks do not overlap.
|
119
|
+
///
|
120
|
+
/// If `chunk_size` does not divide the length of the slice, then the
|
121
|
+
/// last up to `chunk_size-1` elements will be omitted and can be
|
122
|
+
/// retrieved from the remainder function of the iterator.
|
123
|
+
///
|
124
|
+
/// # Examples
|
125
|
+
///
|
126
|
+
/// ```
|
127
|
+
/// use rayon::prelude::*;
|
128
|
+
/// let chunks: Vec<_> = [1, 2, 3, 4, 5].par_chunks_exact(2).collect();
|
129
|
+
/// assert_eq!(chunks, vec![&[1, 2][..], &[3, 4]]);
|
130
|
+
/// ```
|
131
|
+
#[track_caller]
|
132
|
+
fn par_chunks_exact(&self, chunk_size: usize) -> ChunksExact<'_, T> {
|
133
|
+
assert!(chunk_size != 0, "chunk_size must not be zero");
|
134
|
+
ChunksExact::new(chunk_size, self.as_parallel_slice())
|
135
|
+
}
|
136
|
+
|
137
|
+
/// Returns a parallel iterator over at most `chunk_size` elements of `self` at a time,
|
138
|
+
/// starting at the end. The chunks do not overlap.
|
139
|
+
///
|
140
|
+
/// If the number of elements in the iterator is not divisible by
|
141
|
+
/// `chunk_size`, the last chunk may be shorter than `chunk_size`. All
|
142
|
+
/// other chunks will have that exact length.
|
143
|
+
///
|
144
|
+
/// # Examples
|
145
|
+
///
|
146
|
+
/// ```
|
147
|
+
/// use rayon::prelude::*;
|
148
|
+
/// let chunks: Vec<_> = [1, 2, 3, 4, 5].par_rchunks(2).collect();
|
149
|
+
/// assert_eq!(chunks, vec![&[4, 5][..], &[2, 3], &[1]]);
|
150
|
+
/// ```
|
151
|
+
#[track_caller]
|
152
|
+
fn par_rchunks(&self, chunk_size: usize) -> RChunks<'_, T> {
|
153
|
+
assert!(chunk_size != 0, "chunk_size must not be zero");
|
154
|
+
RChunks::new(chunk_size, self.as_parallel_slice())
|
155
|
+
}
|
156
|
+
|
157
|
+
/// Returns a parallel iterator over `chunk_size` elements of `self` at a time,
|
158
|
+
/// starting at the end. The chunks do not overlap.
|
159
|
+
///
|
160
|
+
/// If `chunk_size` does not divide the length of the slice, then the
|
161
|
+
/// last up to `chunk_size-1` elements will be omitted and can be
|
162
|
+
/// retrieved from the remainder function of the iterator.
|
163
|
+
///
|
164
|
+
/// # Examples
|
165
|
+
///
|
166
|
+
/// ```
|
167
|
+
/// use rayon::prelude::*;
|
168
|
+
/// let chunks: Vec<_> = [1, 2, 3, 4, 5].par_rchunks_exact(2).collect();
|
169
|
+
/// assert_eq!(chunks, vec![&[4, 5][..], &[2, 3]]);
|
170
|
+
/// ```
|
171
|
+
#[track_caller]
|
172
|
+
fn par_rchunks_exact(&self, chunk_size: usize) -> RChunksExact<'_, T> {
|
173
|
+
assert!(chunk_size != 0, "chunk_size must not be zero");
|
174
|
+
RChunksExact::new(chunk_size, self.as_parallel_slice())
|
175
|
+
}
|
176
|
+
|
177
|
+
/// Returns a parallel iterator over the slice producing non-overlapping runs
|
178
|
+
/// of elements using the predicate to separate them.
|
179
|
+
///
|
180
|
+
/// The predicate is called on two elements following themselves,
|
181
|
+
/// it means the predicate is called on `slice[0]` and `slice[1]`
|
182
|
+
/// then on `slice[1]` and `slice[2]` and so on.
|
183
|
+
///
|
184
|
+
/// # Examples
|
185
|
+
///
|
186
|
+
/// ```
|
187
|
+
/// use rayon::prelude::*;
|
188
|
+
/// let chunks: Vec<_> = [1, 2, 2, 3, 3, 3].par_chunk_by(|&x, &y| x == y).collect();
|
189
|
+
/// assert_eq!(chunks[0], &[1]);
|
190
|
+
/// assert_eq!(chunks[1], &[2, 2]);
|
191
|
+
/// assert_eq!(chunks[2], &[3, 3, 3]);
|
192
|
+
/// ```
|
193
|
+
fn par_chunk_by<F>(&self, pred: F) -> ChunkBy<'_, T, F>
|
194
|
+
where
|
195
|
+
F: Fn(&T, &T) -> bool + Send + Sync,
|
196
|
+
{
|
197
|
+
ChunkBy::new(self.as_parallel_slice(), pred)
|
198
|
+
}
|
199
|
+
}
|
200
|
+
|
201
|
+
impl<T: Sync> ParallelSlice<T> for [T] {
|
202
|
+
#[inline]
|
203
|
+
fn as_parallel_slice(&self) -> &[T] {
|
204
|
+
self
|
205
|
+
}
|
206
|
+
}
|
207
|
+
|
208
|
+
/// Parallel extensions for mutable slices.
|
209
|
+
pub trait ParallelSliceMut<T: Send> {
|
210
|
+
/// Returns a plain mutable slice, which is used to implement the rest of
|
211
|
+
/// the parallel methods.
|
212
|
+
fn as_parallel_slice_mut(&mut self) -> &mut [T];
|
213
|
+
|
214
|
+
/// Returns a parallel iterator over mutable subslices separated by
|
215
|
+
/// elements that match the separator.
|
216
|
+
///
|
217
|
+
/// # Examples
|
218
|
+
///
|
219
|
+
/// ```
|
220
|
+
/// use rayon::prelude::*;
|
221
|
+
/// let mut array = [1, 2, 3, 0, 2, 4, 8, 0, 3, 6, 9];
|
222
|
+
/// array.par_split_mut(|i| *i == 0)
|
223
|
+
/// .for_each(|slice| slice.reverse());
|
224
|
+
/// assert_eq!(array, [3, 2, 1, 0, 8, 4, 2, 0, 9, 6, 3]);
|
225
|
+
/// ```
|
226
|
+
fn par_split_mut<P>(&mut self, separator: P) -> SplitMut<'_, T, P>
|
227
|
+
where
|
228
|
+
P: Fn(&T) -> bool + Sync + Send,
|
229
|
+
{
|
230
|
+
SplitMut {
|
231
|
+
slice: self.as_parallel_slice_mut(),
|
232
|
+
separator,
|
233
|
+
}
|
234
|
+
}
|
235
|
+
|
236
|
+
/// Returns a parallel iterator over mutable subslices separated by elements
|
237
|
+
/// that match the separator, including the matched part as a terminator.
|
238
|
+
///
|
239
|
+
/// # Examples
|
240
|
+
///
|
241
|
+
/// ```
|
242
|
+
/// use rayon::prelude::*;
|
243
|
+
/// let mut array = [1, 2, 3, 0, 2, 4, 8, 0, 3, 6, 9];
|
244
|
+
/// array.par_split_inclusive_mut(|i| *i == 0)
|
245
|
+
/// .for_each(|slice| slice.reverse());
|
246
|
+
/// assert_eq!(array, [0, 3, 2, 1, 0, 8, 4, 2, 9, 6, 3]);
|
247
|
+
/// ```
|
248
|
+
fn par_split_inclusive_mut<P>(&mut self, separator: P) -> SplitInclusiveMut<'_, T, P>
|
249
|
+
where
|
250
|
+
P: Fn(&T) -> bool + Sync + Send,
|
251
|
+
{
|
252
|
+
SplitInclusiveMut {
|
253
|
+
slice: self.as_parallel_slice_mut(),
|
254
|
+
separator,
|
255
|
+
}
|
256
|
+
}
|
257
|
+
|
258
|
+
/// Returns a parallel iterator over at most `chunk_size` elements of
|
259
|
+
/// `self` at a time. The chunks are mutable and do not overlap.
|
260
|
+
///
|
261
|
+
/// If the number of elements in the iterator is not divisible by
|
262
|
+
/// `chunk_size`, the last chunk may be shorter than `chunk_size`. All
|
263
|
+
/// other chunks will have that exact length.
|
264
|
+
///
|
265
|
+
/// # Examples
|
266
|
+
///
|
267
|
+
/// ```
|
268
|
+
/// use rayon::prelude::*;
|
269
|
+
/// let mut array = [1, 2, 3, 4, 5];
|
270
|
+
/// array.par_chunks_mut(2)
|
271
|
+
/// .for_each(|slice| slice.reverse());
|
272
|
+
/// assert_eq!(array, [2, 1, 4, 3, 5]);
|
273
|
+
/// ```
|
274
|
+
#[track_caller]
|
275
|
+
fn par_chunks_mut(&mut self, chunk_size: usize) -> ChunksMut<'_, T> {
|
276
|
+
assert!(chunk_size != 0, "chunk_size must not be zero");
|
277
|
+
ChunksMut::new(chunk_size, self.as_parallel_slice_mut())
|
278
|
+
}
|
279
|
+
|
280
|
+
/// Returns a parallel iterator over `chunk_size` elements of
|
281
|
+
/// `self` at a time. The chunks are mutable and do not overlap.
|
282
|
+
///
|
283
|
+
/// If `chunk_size` does not divide the length of the slice, then the
|
284
|
+
/// last up to `chunk_size-1` elements will be omitted and can be
|
285
|
+
/// retrieved from the remainder function of the iterator.
|
286
|
+
///
|
287
|
+
/// # Examples
|
288
|
+
///
|
289
|
+
/// ```
|
290
|
+
/// use rayon::prelude::*;
|
291
|
+
/// let mut array = [1, 2, 3, 4, 5];
|
292
|
+
/// array.par_chunks_exact_mut(3)
|
293
|
+
/// .for_each(|slice| slice.reverse());
|
294
|
+
/// assert_eq!(array, [3, 2, 1, 4, 5]);
|
295
|
+
/// ```
|
296
|
+
#[track_caller]
|
297
|
+
fn par_chunks_exact_mut(&mut self, chunk_size: usize) -> ChunksExactMut<'_, T> {
|
298
|
+
assert!(chunk_size != 0, "chunk_size must not be zero");
|
299
|
+
ChunksExactMut::new(chunk_size, self.as_parallel_slice_mut())
|
300
|
+
}
|
301
|
+
|
302
|
+
/// Returns a parallel iterator over at most `chunk_size` elements of `self` at a time,
|
303
|
+
/// starting at the end. The chunks are mutable and do not overlap.
|
304
|
+
///
|
305
|
+
/// If the number of elements in the iterator is not divisible by
|
306
|
+
/// `chunk_size`, the last chunk may be shorter than `chunk_size`. All
|
307
|
+
/// other chunks will have that exact length.
|
308
|
+
///
|
309
|
+
/// # Examples
|
310
|
+
///
|
311
|
+
/// ```
|
312
|
+
/// use rayon::prelude::*;
|
313
|
+
/// let mut array = [1, 2, 3, 4, 5];
|
314
|
+
/// array.par_rchunks_mut(2)
|
315
|
+
/// .for_each(|slice| slice.reverse());
|
316
|
+
/// assert_eq!(array, [1, 3, 2, 5, 4]);
|
317
|
+
/// ```
|
318
|
+
#[track_caller]
|
319
|
+
fn par_rchunks_mut(&mut self, chunk_size: usize) -> RChunksMut<'_, T> {
|
320
|
+
assert!(chunk_size != 0, "chunk_size must not be zero");
|
321
|
+
RChunksMut::new(chunk_size, self.as_parallel_slice_mut())
|
322
|
+
}
|
323
|
+
|
324
|
+
/// Returns a parallel iterator over `chunk_size` elements of `self` at a time,
|
325
|
+
/// starting at the end. The chunks are mutable and do not overlap.
|
326
|
+
///
|
327
|
+
/// If `chunk_size` does not divide the length of the slice, then the
|
328
|
+
/// last up to `chunk_size-1` elements will be omitted and can be
|
329
|
+
/// retrieved from the remainder function of the iterator.
|
330
|
+
///
|
331
|
+
/// # Examples
|
332
|
+
///
|
333
|
+
/// ```
|
334
|
+
/// use rayon::prelude::*;
|
335
|
+
/// let mut array = [1, 2, 3, 4, 5];
|
336
|
+
/// array.par_rchunks_exact_mut(3)
|
337
|
+
/// .for_each(|slice| slice.reverse());
|
338
|
+
/// assert_eq!(array, [1, 2, 5, 4, 3]);
|
339
|
+
/// ```
|
340
|
+
#[track_caller]
|
341
|
+
fn par_rchunks_exact_mut(&mut self, chunk_size: usize) -> RChunksExactMut<'_, T> {
|
342
|
+
assert!(chunk_size != 0, "chunk_size must not be zero");
|
343
|
+
RChunksExactMut::new(chunk_size, self.as_parallel_slice_mut())
|
344
|
+
}
|
345
|
+
|
346
|
+
/// Sorts the slice in parallel.
|
347
|
+
///
|
348
|
+
/// This sort is stable (i.e., does not reorder equal elements) and *O*(*n* \* log(*n*)) worst-case.
|
349
|
+
///
|
350
|
+
/// When applicable, unstable sorting is preferred because it is generally faster than stable
|
351
|
+
/// sorting and it doesn't allocate auxiliary memory.
|
352
|
+
/// See [`par_sort_unstable`](#method.par_sort_unstable).
|
353
|
+
///
|
354
|
+
/// # Current implementation
|
355
|
+
///
|
356
|
+
/// The current algorithm is an adaptive merge sort inspired by
|
357
|
+
/// [timsort](https://en.wikipedia.org/wiki/Timsort).
|
358
|
+
/// It is designed to be very fast in cases where the slice is nearly sorted, or consists of
|
359
|
+
/// two or more sorted sequences concatenated one after another.
|
360
|
+
///
|
361
|
+
/// Also, it allocates temporary storage the same size as `self`, but for very short slices a
|
362
|
+
/// non-allocating insertion sort is used instead.
|
363
|
+
///
|
364
|
+
/// In order to sort the slice in parallel, the slice is first divided into smaller chunks and
|
365
|
+
/// all chunks are sorted in parallel. Then, adjacent chunks that together form non-descending
|
366
|
+
/// or descending runs are concatenated. Finally, the remaining chunks are merged together using
|
367
|
+
/// parallel subdivision of chunks and parallel merge operation.
|
368
|
+
///
|
369
|
+
/// # Examples
|
370
|
+
///
|
371
|
+
/// ```
|
372
|
+
/// use rayon::prelude::*;
|
373
|
+
///
|
374
|
+
/// let mut v = [-5, 4, 1, -3, 2];
|
375
|
+
///
|
376
|
+
/// v.par_sort();
|
377
|
+
/// assert_eq!(v, [-5, -3, 1, 2, 4]);
|
378
|
+
/// ```
|
379
|
+
fn par_sort(&mut self)
|
380
|
+
where
|
381
|
+
T: Ord,
|
382
|
+
{
|
383
|
+
par_mergesort(self.as_parallel_slice_mut(), T::lt);
|
384
|
+
}
|
385
|
+
|
386
|
+
/// Sorts the slice in parallel with a comparator function.
|
387
|
+
///
|
388
|
+
/// This sort is stable (i.e., does not reorder equal elements) and *O*(*n* \* log(*n*)) worst-case.
|
389
|
+
///
|
390
|
+
/// The comparator function must define a total ordering for the elements in the slice. If
|
391
|
+
/// the ordering is not total, the order of the elements is unspecified. An order is a
|
392
|
+
/// total order if it is (for all `a`, `b` and `c`):
|
393
|
+
///
|
394
|
+
/// * total and antisymmetric: exactly one of `a < b`, `a == b` or `a > b` is true, and
|
395
|
+
/// * transitive, `a < b` and `b < c` implies `a < c`. The same must hold for both `==` and `>`.
|
396
|
+
///
|
397
|
+
/// For example, while [`f64`] doesn't implement [`Ord`] because `NaN != NaN`, we can use
|
398
|
+
/// `partial_cmp` as our sort function when we know the slice doesn't contain a `NaN`.
|
399
|
+
///
|
400
|
+
/// ```
|
401
|
+
/// use rayon::prelude::*;
|
402
|
+
///
|
403
|
+
/// let mut floats = [5f64, 4.0, 1.0, 3.0, 2.0];
|
404
|
+
/// floats.par_sort_by(|a, b| a.partial_cmp(b).unwrap());
|
405
|
+
/// assert_eq!(floats, [1.0, 2.0, 3.0, 4.0, 5.0]);
|
406
|
+
/// ```
|
407
|
+
///
|
408
|
+
/// When applicable, unstable sorting is preferred because it is generally faster than stable
|
409
|
+
/// sorting and it doesn't allocate auxiliary memory.
|
410
|
+
/// See [`par_sort_unstable_by`](#method.par_sort_unstable_by).
|
411
|
+
///
|
412
|
+
/// # Current implementation
|
413
|
+
///
|
414
|
+
/// The current algorithm is an adaptive merge sort inspired by
|
415
|
+
/// [timsort](https://en.wikipedia.org/wiki/Timsort).
|
416
|
+
/// It is designed to be very fast in cases where the slice is nearly sorted, or consists of
|
417
|
+
/// two or more sorted sequences concatenated one after another.
|
418
|
+
///
|
419
|
+
/// Also, it allocates temporary storage the same size as `self`, but for very short slices a
|
420
|
+
/// non-allocating insertion sort is used instead.
|
421
|
+
///
|
422
|
+
/// In order to sort the slice in parallel, the slice is first divided into smaller chunks and
|
423
|
+
/// all chunks are sorted in parallel. Then, adjacent chunks that together form non-descending
|
424
|
+
/// or descending runs are concatenated. Finally, the remaining chunks are merged together using
|
425
|
+
/// parallel subdivision of chunks and parallel merge operation.
|
426
|
+
///
|
427
|
+
/// # Examples
|
428
|
+
///
|
429
|
+
/// ```
|
430
|
+
/// use rayon::prelude::*;
|
431
|
+
///
|
432
|
+
/// let mut v = [5, 4, 1, 3, 2];
|
433
|
+
/// v.par_sort_by(|a, b| a.cmp(b));
|
434
|
+
/// assert_eq!(v, [1, 2, 3, 4, 5]);
|
435
|
+
///
|
436
|
+
/// // reverse sorting
|
437
|
+
/// v.par_sort_by(|a, b| b.cmp(a));
|
438
|
+
/// assert_eq!(v, [5, 4, 3, 2, 1]);
|
439
|
+
/// ```
|
440
|
+
fn par_sort_by<F>(&mut self, compare: F)
|
441
|
+
where
|
442
|
+
F: Fn(&T, &T) -> Ordering + Sync,
|
443
|
+
{
|
444
|
+
par_mergesort(self.as_parallel_slice_mut(), |a, b| {
|
445
|
+
compare(a, b) == Ordering::Less
|
446
|
+
});
|
447
|
+
}
|
448
|
+
|
449
|
+
/// Sorts the slice in parallel with a key extraction function.
|
450
|
+
///
|
451
|
+
/// This sort is stable (i.e., does not reorder equal elements) and *O*(*m* \* *n* \* log(*n*))
|
452
|
+
/// worst-case, where the key function is *O*(*m*).
|
453
|
+
///
|
454
|
+
/// For expensive key functions (e.g. functions that are not simple property accesses or
|
455
|
+
/// basic operations), [`par_sort_by_cached_key`](#method.par_sort_by_cached_key) is likely to
|
456
|
+
/// be significantly faster, as it does not recompute element keys.
|
457
|
+
///
|
458
|
+
/// When applicable, unstable sorting is preferred because it is generally faster than stable
|
459
|
+
/// sorting and it doesn't allocate auxiliary memory.
|
460
|
+
/// See [`par_sort_unstable_by_key`](#method.par_sort_unstable_by_key).
|
461
|
+
///
|
462
|
+
/// # Current implementation
|
463
|
+
///
|
464
|
+
/// The current algorithm is an adaptive merge sort inspired by
|
465
|
+
/// [timsort](https://en.wikipedia.org/wiki/Timsort).
|
466
|
+
/// It is designed to be very fast in cases where the slice is nearly sorted, or consists of
|
467
|
+
/// two or more sorted sequences concatenated one after another.
|
468
|
+
///
|
469
|
+
/// Also, it allocates temporary storage the same size as `self`, but for very short slices a
|
470
|
+
/// non-allocating insertion sort is used instead.
|
471
|
+
///
|
472
|
+
/// In order to sort the slice in parallel, the slice is first divided into smaller chunks and
|
473
|
+
/// all chunks are sorted in parallel. Then, adjacent chunks that together form non-descending
|
474
|
+
/// or descending runs are concatenated. Finally, the remaining chunks are merged together using
|
475
|
+
/// parallel subdivision of chunks and parallel merge operation.
|
476
|
+
///
|
477
|
+
/// # Examples
|
478
|
+
///
|
479
|
+
/// ```
|
480
|
+
/// use rayon::prelude::*;
|
481
|
+
///
|
482
|
+
/// let mut v = [-5i32, 4, 1, -3, 2];
|
483
|
+
///
|
484
|
+
/// v.par_sort_by_key(|k| k.abs());
|
485
|
+
/// assert_eq!(v, [1, 2, -3, 4, -5]);
|
486
|
+
/// ```
|
487
|
+
fn par_sort_by_key<K, F>(&mut self, f: F)
|
488
|
+
where
|
489
|
+
K: Ord,
|
490
|
+
F: Fn(&T) -> K + Sync,
|
491
|
+
{
|
492
|
+
par_mergesort(self.as_parallel_slice_mut(), |a, b| f(a).lt(&f(b)));
|
493
|
+
}
|
494
|
+
|
495
|
+
/// Sorts the slice in parallel with a key extraction function.
|
496
|
+
///
|
497
|
+
/// During sorting, the key function is called at most once per element, by using
|
498
|
+
/// temporary storage to remember the results of key evaluation.
|
499
|
+
/// The key function is called in parallel, so the order of calls is completely unspecified.
|
500
|
+
///
|
501
|
+
/// This sort is stable (i.e., does not reorder equal elements) and *O*(*m* \* *n* + *n* \* log(*n*))
|
502
|
+
/// worst-case, where the key function is *O*(*m*).
|
503
|
+
///
|
504
|
+
/// For simple key functions (e.g., functions that are property accesses or
|
505
|
+
/// basic operations), [`par_sort_by_key`](#method.par_sort_by_key) is likely to be
|
506
|
+
/// faster.
|
507
|
+
///
|
508
|
+
/// # Current implementation
|
509
|
+
///
|
510
|
+
/// The current algorithm is based on [pattern-defeating quicksort][pdqsort] by Orson Peters,
|
511
|
+
/// which combines the fast average case of randomized quicksort with the fast worst case of
|
512
|
+
/// heapsort, while achieving linear time on slices with certain patterns. It uses some
|
513
|
+
/// randomization to avoid degenerate cases, but with a fixed seed to always provide
|
514
|
+
/// deterministic behavior.
|
515
|
+
///
|
516
|
+
/// In the worst case, the algorithm allocates temporary storage in a `Vec<(K, usize)>` the
|
517
|
+
/// length of the slice.
|
518
|
+
///
|
519
|
+
/// All quicksorts work in two stages: partitioning into two halves followed by recursive
|
520
|
+
/// calls. The partitioning phase is sequential, but the two recursive calls are performed in
|
521
|
+
/// parallel. Finally, after sorting the cached keys, the item positions are updated sequentially.
|
522
|
+
///
|
523
|
+
/// [pdqsort]: https://github.com/orlp/pdqsort
|
524
|
+
///
|
525
|
+
/// # Examples
|
526
|
+
///
|
527
|
+
/// ```
|
528
|
+
/// use rayon::prelude::*;
|
529
|
+
///
|
530
|
+
/// let mut v = [-5i32, 4, 32, -3, 2];
|
531
|
+
///
|
532
|
+
/// v.par_sort_by_cached_key(|k| k.to_string());
|
533
|
+
/// assert!(v == [-3, -5, 2, 32, 4]);
|
534
|
+
/// ```
|
535
|
+
fn par_sort_by_cached_key<K, F>(&mut self, f: F)
|
536
|
+
where
|
537
|
+
F: Fn(&T) -> K + Sync,
|
538
|
+
K: Ord + Send,
|
539
|
+
{
|
540
|
+
let slice = self.as_parallel_slice_mut();
|
541
|
+
let len = slice.len();
|
542
|
+
if len < 2 {
|
543
|
+
return;
|
544
|
+
}
|
545
|
+
|
546
|
+
// Helper macro for indexing our vector by the smallest possible type, to reduce allocation.
|
547
|
+
macro_rules! sort_by_key {
|
548
|
+
($t:ty) => {{
|
549
|
+
let mut indices: Vec<_> = slice
|
550
|
+
.par_iter_mut()
|
551
|
+
.enumerate()
|
552
|
+
.map(|(i, x)| (f(&*x), i as $t))
|
553
|
+
.collect();
|
554
|
+
// The elements of `indices` are unique, as they are indexed, so any sort will be
|
555
|
+
// stable with respect to the original slice. We use `sort_unstable` here because
|
556
|
+
// it requires less memory allocation.
|
557
|
+
indices.par_sort_unstable();
|
558
|
+
for i in 0..len {
|
559
|
+
let mut index = indices[i].1;
|
560
|
+
while (index as usize) < i {
|
561
|
+
index = indices[index as usize].1;
|
562
|
+
}
|
563
|
+
indices[i].1 = index;
|
564
|
+
slice.swap(i, index as usize);
|
565
|
+
}
|
566
|
+
}};
|
567
|
+
}
|
568
|
+
|
569
|
+
let sz_u8 = size_of::<(K, u8)>();
|
570
|
+
let sz_u16 = size_of::<(K, u16)>();
|
571
|
+
let sz_u32 = size_of::<(K, u32)>();
|
572
|
+
let sz_usize = size_of::<(K, usize)>();
|
573
|
+
|
574
|
+
if sz_u8 < sz_u16 && len <= (u8::MAX as usize) {
|
575
|
+
return sort_by_key!(u8);
|
576
|
+
}
|
577
|
+
if sz_u16 < sz_u32 && len <= (u16::MAX as usize) {
|
578
|
+
return sort_by_key!(u16);
|
579
|
+
}
|
580
|
+
if sz_u32 < sz_usize && len <= (u32::MAX as usize) {
|
581
|
+
return sort_by_key!(u32);
|
582
|
+
}
|
583
|
+
sort_by_key!(usize)
|
584
|
+
}
|
585
|
+
|
586
|
+
/// Sorts the slice in parallel, but might not preserve the order of equal elements.
|
587
|
+
///
|
588
|
+
/// This sort is unstable (i.e., may reorder equal elements), in-place
|
589
|
+
/// (i.e., does not allocate), and *O*(*n* \* log(*n*)) worst-case.
|
590
|
+
///
|
591
|
+
/// # Current implementation
|
592
|
+
///
|
593
|
+
/// The current algorithm is based on [pattern-defeating quicksort][pdqsort] by Orson Peters,
|
594
|
+
/// which combines the fast average case of randomized quicksort with the fast worst case of
|
595
|
+
/// heapsort, while achieving linear time on slices with certain patterns. It uses some
|
596
|
+
/// randomization to avoid degenerate cases, but with a fixed seed to always provide
|
597
|
+
/// deterministic behavior.
|
598
|
+
///
|
599
|
+
/// It is typically faster than stable sorting, except in a few special cases, e.g., when the
|
600
|
+
/// slice consists of several concatenated sorted sequences.
|
601
|
+
///
|
602
|
+
/// All quicksorts work in two stages: partitioning into two halves followed by recursive
|
603
|
+
/// calls. The partitioning phase is sequential, but the two recursive calls are performed in
|
604
|
+
/// parallel.
|
605
|
+
///
|
606
|
+
/// [pdqsort]: https://github.com/orlp/pdqsort
|
607
|
+
///
|
608
|
+
/// # Examples
|
609
|
+
///
|
610
|
+
/// ```
|
611
|
+
/// use rayon::prelude::*;
|
612
|
+
///
|
613
|
+
/// let mut v = [-5, 4, 1, -3, 2];
|
614
|
+
///
|
615
|
+
/// v.par_sort_unstable();
|
616
|
+
/// assert_eq!(v, [-5, -3, 1, 2, 4]);
|
617
|
+
/// ```
|
618
|
+
fn par_sort_unstable(&mut self)
|
619
|
+
where
|
620
|
+
T: Ord,
|
621
|
+
{
|
622
|
+
par_quicksort(self.as_parallel_slice_mut(), T::lt);
|
623
|
+
}
|
624
|
+
|
625
|
+
/// Sorts the slice in parallel with a comparator function, but might not preserve the order of
|
626
|
+
/// equal elements.
|
627
|
+
///
|
628
|
+
/// This sort is unstable (i.e., may reorder equal elements), in-place
|
629
|
+
/// (i.e., does not allocate), and *O*(*n* \* log(*n*)) worst-case.
|
630
|
+
///
|
631
|
+
/// The comparator function must define a total ordering for the elements in the slice. If
|
632
|
+
/// the ordering is not total, the order of the elements is unspecified. An order is a
|
633
|
+
/// total order if it is (for all `a`, `b` and `c`):
|
634
|
+
///
|
635
|
+
/// * total and antisymmetric: exactly one of `a < b`, `a == b` or `a > b` is true, and
|
636
|
+
/// * transitive, `a < b` and `b < c` implies `a < c`. The same must hold for both `==` and `>`.
|
637
|
+
///
|
638
|
+
/// For example, while [`f64`] doesn't implement [`Ord`] because `NaN != NaN`, we can use
|
639
|
+
/// `partial_cmp` as our sort function when we know the slice doesn't contain a `NaN`.
|
640
|
+
///
|
641
|
+
/// ```
|
642
|
+
/// use rayon::prelude::*;
|
643
|
+
///
|
644
|
+
/// let mut floats = [5f64, 4.0, 1.0, 3.0, 2.0];
|
645
|
+
/// floats.par_sort_unstable_by(|a, b| a.partial_cmp(b).unwrap());
|
646
|
+
/// assert_eq!(floats, [1.0, 2.0, 3.0, 4.0, 5.0]);
|
647
|
+
/// ```
|
648
|
+
///
|
649
|
+
/// # Current implementation
|
650
|
+
///
|
651
|
+
/// The current algorithm is based on [pattern-defeating quicksort][pdqsort] by Orson Peters,
|
652
|
+
/// which combines the fast average case of randomized quicksort with the fast worst case of
|
653
|
+
/// heapsort, while achieving linear time on slices with certain patterns. It uses some
|
654
|
+
/// randomization to avoid degenerate cases, but with a fixed seed to always provide
|
655
|
+
/// deterministic behavior.
|
656
|
+
///
|
657
|
+
/// It is typically faster than stable sorting, except in a few special cases, e.g., when the
|
658
|
+
/// slice consists of several concatenated sorted sequences.
|
659
|
+
///
|
660
|
+
/// All quicksorts work in two stages: partitioning into two halves followed by recursive
|
661
|
+
/// calls. The partitioning phase is sequential, but the two recursive calls are performed in
|
662
|
+
/// parallel.
|
663
|
+
///
|
664
|
+
/// [pdqsort]: https://github.com/orlp/pdqsort
|
665
|
+
///
|
666
|
+
/// # Examples
|
667
|
+
///
|
668
|
+
/// ```
|
669
|
+
/// use rayon::prelude::*;
|
670
|
+
///
|
671
|
+
/// let mut v = [5, 4, 1, 3, 2];
|
672
|
+
/// v.par_sort_unstable_by(|a, b| a.cmp(b));
|
673
|
+
/// assert_eq!(v, [1, 2, 3, 4, 5]);
|
674
|
+
///
|
675
|
+
/// // reverse sorting
|
676
|
+
/// v.par_sort_unstable_by(|a, b| b.cmp(a));
|
677
|
+
/// assert_eq!(v, [5, 4, 3, 2, 1]);
|
678
|
+
/// ```
|
679
|
+
fn par_sort_unstable_by<F>(&mut self, compare: F)
|
680
|
+
where
|
681
|
+
F: Fn(&T, &T) -> Ordering + Sync,
|
682
|
+
{
|
683
|
+
par_quicksort(self.as_parallel_slice_mut(), |a, b| {
|
684
|
+
compare(a, b) == Ordering::Less
|
685
|
+
});
|
686
|
+
}
|
687
|
+
|
688
|
+
/// Sorts the slice in parallel with a key extraction function, but might not preserve the order
|
689
|
+
/// of equal elements.
|
690
|
+
///
|
691
|
+
/// This sort is unstable (i.e., may reorder equal elements), in-place
|
692
|
+
/// (i.e., does not allocate), and *O*(m \* *n* \* log(*n*)) worst-case,
|
693
|
+
/// where the key function is *O*(*m*).
|
694
|
+
///
|
695
|
+
/// # Current implementation
|
696
|
+
///
|
697
|
+
/// The current algorithm is based on [pattern-defeating quicksort][pdqsort] by Orson Peters,
|
698
|
+
/// which combines the fast average case of randomized quicksort with the fast worst case of
|
699
|
+
/// heapsort, while achieving linear time on slices with certain patterns. It uses some
|
700
|
+
/// randomization to avoid degenerate cases, but with a fixed seed to always provide
|
701
|
+
/// deterministic behavior.
|
702
|
+
///
|
703
|
+
/// Due to its key calling strategy, `par_sort_unstable_by_key` is likely to be slower than
|
704
|
+
/// [`par_sort_by_cached_key`](#method.par_sort_by_cached_key) in cases where the key function
|
705
|
+
/// is expensive.
|
706
|
+
///
|
707
|
+
/// All quicksorts work in two stages: partitioning into two halves followed by recursive
|
708
|
+
/// calls. The partitioning phase is sequential, but the two recursive calls are performed in
|
709
|
+
/// parallel.
|
710
|
+
///
|
711
|
+
/// [pdqsort]: https://github.com/orlp/pdqsort
|
712
|
+
///
|
713
|
+
/// # Examples
|
714
|
+
///
|
715
|
+
/// ```
|
716
|
+
/// use rayon::prelude::*;
|
717
|
+
///
|
718
|
+
/// let mut v = [-5i32, 4, 1, -3, 2];
|
719
|
+
///
|
720
|
+
/// v.par_sort_unstable_by_key(|k| k.abs());
|
721
|
+
/// assert_eq!(v, [1, 2, -3, 4, -5]);
|
722
|
+
/// ```
|
723
|
+
fn par_sort_unstable_by_key<K, F>(&mut self, f: F)
|
724
|
+
where
|
725
|
+
K: Ord,
|
726
|
+
F: Fn(&T) -> K + Sync,
|
727
|
+
{
|
728
|
+
par_quicksort(self.as_parallel_slice_mut(), |a, b| f(a).lt(&f(b)));
|
729
|
+
}
|
730
|
+
|
731
|
+
/// Returns a parallel iterator over the slice producing non-overlapping mutable
|
732
|
+
/// runs of elements using the predicate to separate them.
|
733
|
+
///
|
734
|
+
/// The predicate is called on two elements following themselves,
|
735
|
+
/// it means the predicate is called on `slice[0]` and `slice[1]`
|
736
|
+
/// then on `slice[1]` and `slice[2]` and so on.
|
737
|
+
///
|
738
|
+
/// # Examples
|
739
|
+
///
|
740
|
+
/// ```
|
741
|
+
/// use rayon::prelude::*;
|
742
|
+
/// let mut xs = [1, 2, 2, 3, 3, 3];
|
743
|
+
/// let chunks: Vec<_> = xs.par_chunk_by_mut(|&x, &y| x == y).collect();
|
744
|
+
/// assert_eq!(chunks[0], &mut [1]);
|
745
|
+
/// assert_eq!(chunks[1], &mut [2, 2]);
|
746
|
+
/// assert_eq!(chunks[2], &mut [3, 3, 3]);
|
747
|
+
/// ```
|
748
|
+
fn par_chunk_by_mut<F>(&mut self, pred: F) -> ChunkByMut<'_, T, F>
|
749
|
+
where
|
750
|
+
F: Fn(&T, &T) -> bool + Send + Sync,
|
751
|
+
{
|
752
|
+
ChunkByMut::new(self.as_parallel_slice_mut(), pred)
|
753
|
+
}
|
754
|
+
}
|
755
|
+
|
756
|
+
impl<T: Send> ParallelSliceMut<T> for [T] {
|
757
|
+
#[inline]
|
758
|
+
fn as_parallel_slice_mut(&mut self) -> &mut [T] {
|
759
|
+
self
|
760
|
+
}
|
761
|
+
}
|
762
|
+
|
763
|
+
impl<'data, T: Sync> IntoParallelIterator for &'data [T] {
|
764
|
+
type Item = &'data T;
|
765
|
+
type Iter = Iter<'data, T>;
|
766
|
+
|
767
|
+
fn into_par_iter(self) -> Self::Iter {
|
768
|
+
Iter { slice: self }
|
769
|
+
}
|
770
|
+
}
|
771
|
+
|
772
|
+
impl<'data, T: Sync> IntoParallelIterator for &'data Box<[T]> {
|
773
|
+
type Item = &'data T;
|
774
|
+
type Iter = Iter<'data, T>;
|
775
|
+
|
776
|
+
fn into_par_iter(self) -> Self::Iter {
|
777
|
+
Iter { slice: self }
|
778
|
+
}
|
779
|
+
}
|
780
|
+
|
781
|
+
impl<'data, T: Send> IntoParallelIterator for &'data mut [T] {
|
782
|
+
type Item = &'data mut T;
|
783
|
+
type Iter = IterMut<'data, T>;
|
784
|
+
|
785
|
+
fn into_par_iter(self) -> Self::Iter {
|
786
|
+
IterMut { slice: self }
|
787
|
+
}
|
788
|
+
}
|
789
|
+
|
790
|
+
impl<'data, T: Send> IntoParallelIterator for &'data mut Box<[T]> {
|
791
|
+
type Item = &'data mut T;
|
792
|
+
type Iter = IterMut<'data, T>;
|
793
|
+
|
794
|
+
fn into_par_iter(self) -> Self::Iter {
|
795
|
+
IterMut { slice: self }
|
796
|
+
}
|
797
|
+
}
|
798
|
+
|
799
|
+
/// Parallel iterator over immutable items in a slice
|
800
|
+
#[derive(Debug)]
|
801
|
+
pub struct Iter<'data, T> {
|
802
|
+
slice: &'data [T],
|
803
|
+
}
|
804
|
+
|
805
|
+
impl<T> Clone for Iter<'_, T> {
|
806
|
+
fn clone(&self) -> Self {
|
807
|
+
Iter { ..*self }
|
808
|
+
}
|
809
|
+
}
|
810
|
+
|
811
|
+
impl<'data, T: Sync> ParallelIterator for Iter<'data, T> {
|
812
|
+
type Item = &'data T;
|
813
|
+
|
814
|
+
fn drive_unindexed<C>(self, consumer: C) -> C::Result
|
815
|
+
where
|
816
|
+
C: UnindexedConsumer<Self::Item>,
|
817
|
+
{
|
818
|
+
bridge(self, consumer)
|
819
|
+
}
|
820
|
+
|
821
|
+
fn opt_len(&self) -> Option<usize> {
|
822
|
+
Some(self.len())
|
823
|
+
}
|
824
|
+
}
|
825
|
+
|
826
|
+
impl<T: Sync> IndexedParallelIterator for Iter<'_, T> {
|
827
|
+
fn drive<C>(self, consumer: C) -> C::Result
|
828
|
+
where
|
829
|
+
C: Consumer<Self::Item>,
|
830
|
+
{
|
831
|
+
bridge(self, consumer)
|
832
|
+
}
|
833
|
+
|
834
|
+
fn len(&self) -> usize {
|
835
|
+
self.slice.len()
|
836
|
+
}
|
837
|
+
|
838
|
+
fn with_producer<CB>(self, callback: CB) -> CB::Output
|
839
|
+
where
|
840
|
+
CB: ProducerCallback<Self::Item>,
|
841
|
+
{
|
842
|
+
callback.callback(IterProducer { slice: self.slice })
|
843
|
+
}
|
844
|
+
}
|
845
|
+
|
846
|
+
struct IterProducer<'data, T: Sync> {
|
847
|
+
slice: &'data [T],
|
848
|
+
}
|
849
|
+
|
850
|
+
impl<'data, T: 'data + Sync> Producer for IterProducer<'data, T> {
|
851
|
+
type Item = &'data T;
|
852
|
+
type IntoIter = ::std::slice::Iter<'data, T>;
|
853
|
+
|
854
|
+
fn into_iter(self) -> Self::IntoIter {
|
855
|
+
self.slice.iter()
|
856
|
+
}
|
857
|
+
|
858
|
+
fn split_at(self, index: usize) -> (Self, Self) {
|
859
|
+
let (left, right) = self.slice.split_at(index);
|
860
|
+
(IterProducer { slice: left }, IterProducer { slice: right })
|
861
|
+
}
|
862
|
+
}
|
863
|
+
|
864
|
+
/// Parallel iterator over immutable overlapping windows of a slice
|
865
|
+
#[derive(Debug)]
|
866
|
+
pub struct Windows<'data, T> {
|
867
|
+
window_size: usize,
|
868
|
+
slice: &'data [T],
|
869
|
+
}
|
870
|
+
|
871
|
+
impl<T> Clone for Windows<'_, T> {
|
872
|
+
fn clone(&self) -> Self {
|
873
|
+
Windows { ..*self }
|
874
|
+
}
|
875
|
+
}
|
876
|
+
|
877
|
+
impl<'data, T: Sync> ParallelIterator for Windows<'data, T> {
|
878
|
+
type Item = &'data [T];
|
879
|
+
|
880
|
+
fn drive_unindexed<C>(self, consumer: C) -> C::Result
|
881
|
+
where
|
882
|
+
C: UnindexedConsumer<Self::Item>,
|
883
|
+
{
|
884
|
+
bridge(self, consumer)
|
885
|
+
}
|
886
|
+
|
887
|
+
fn opt_len(&self) -> Option<usize> {
|
888
|
+
Some(self.len())
|
889
|
+
}
|
890
|
+
}
|
891
|
+
|
892
|
+
impl<T: Sync> IndexedParallelIterator for Windows<'_, T> {
|
893
|
+
fn drive<C>(self, consumer: C) -> C::Result
|
894
|
+
where
|
895
|
+
C: Consumer<Self::Item>,
|
896
|
+
{
|
897
|
+
bridge(self, consumer)
|
898
|
+
}
|
899
|
+
|
900
|
+
fn len(&self) -> usize {
|
901
|
+
assert!(self.window_size >= 1);
|
902
|
+
self.slice.len().saturating_sub(self.window_size - 1)
|
903
|
+
}
|
904
|
+
|
905
|
+
fn with_producer<CB>(self, callback: CB) -> CB::Output
|
906
|
+
where
|
907
|
+
CB: ProducerCallback<Self::Item>,
|
908
|
+
{
|
909
|
+
callback.callback(WindowsProducer {
|
910
|
+
window_size: self.window_size,
|
911
|
+
slice: self.slice,
|
912
|
+
})
|
913
|
+
}
|
914
|
+
}
|
915
|
+
|
916
|
+
struct WindowsProducer<'data, T: Sync> {
|
917
|
+
window_size: usize,
|
918
|
+
slice: &'data [T],
|
919
|
+
}
|
920
|
+
|
921
|
+
impl<'data, T: 'data + Sync> Producer for WindowsProducer<'data, T> {
|
922
|
+
type Item = &'data [T];
|
923
|
+
type IntoIter = ::std::slice::Windows<'data, T>;
|
924
|
+
|
925
|
+
fn into_iter(self) -> Self::IntoIter {
|
926
|
+
self.slice.windows(self.window_size)
|
927
|
+
}
|
928
|
+
|
929
|
+
fn split_at(self, index: usize) -> (Self, Self) {
|
930
|
+
let left_index = Ord::min(self.slice.len(), index + (self.window_size - 1));
|
931
|
+
let left = &self.slice[..left_index];
|
932
|
+
let right = &self.slice[index..];
|
933
|
+
(
|
934
|
+
WindowsProducer {
|
935
|
+
window_size: self.window_size,
|
936
|
+
slice: left,
|
937
|
+
},
|
938
|
+
WindowsProducer {
|
939
|
+
window_size: self.window_size,
|
940
|
+
slice: right,
|
941
|
+
},
|
942
|
+
)
|
943
|
+
}
|
944
|
+
}
|
945
|
+
|
946
|
+
/// Parallel iterator over mutable items in a slice
|
947
|
+
#[derive(Debug)]
|
948
|
+
pub struct IterMut<'data, T> {
|
949
|
+
slice: &'data mut [T],
|
950
|
+
}
|
951
|
+
|
952
|
+
impl<'data, T: Send> ParallelIterator for IterMut<'data, T> {
|
953
|
+
type Item = &'data mut T;
|
954
|
+
|
955
|
+
fn drive_unindexed<C>(self, consumer: C) -> C::Result
|
956
|
+
where
|
957
|
+
C: UnindexedConsumer<Self::Item>,
|
958
|
+
{
|
959
|
+
bridge(self, consumer)
|
960
|
+
}
|
961
|
+
|
962
|
+
fn opt_len(&self) -> Option<usize> {
|
963
|
+
Some(self.len())
|
964
|
+
}
|
965
|
+
}
|
966
|
+
|
967
|
+
impl<T: Send> IndexedParallelIterator for IterMut<'_, T> {
|
968
|
+
fn drive<C>(self, consumer: C) -> C::Result
|
969
|
+
where
|
970
|
+
C: Consumer<Self::Item>,
|
971
|
+
{
|
972
|
+
bridge(self, consumer)
|
973
|
+
}
|
974
|
+
|
975
|
+
fn len(&self) -> usize {
|
976
|
+
self.slice.len()
|
977
|
+
}
|
978
|
+
|
979
|
+
fn with_producer<CB>(self, callback: CB) -> CB::Output
|
980
|
+
where
|
981
|
+
CB: ProducerCallback<Self::Item>,
|
982
|
+
{
|
983
|
+
callback.callback(IterMutProducer { slice: self.slice })
|
984
|
+
}
|
985
|
+
}
|
986
|
+
|
987
|
+
struct IterMutProducer<'data, T: Send> {
|
988
|
+
slice: &'data mut [T],
|
989
|
+
}
|
990
|
+
|
991
|
+
impl<'data, T: 'data + Send> Producer for IterMutProducer<'data, T> {
|
992
|
+
type Item = &'data mut T;
|
993
|
+
type IntoIter = ::std::slice::IterMut<'data, T>;
|
994
|
+
|
995
|
+
fn into_iter(self) -> Self::IntoIter {
|
996
|
+
self.slice.iter_mut()
|
997
|
+
}
|
998
|
+
|
999
|
+
fn split_at(self, index: usize) -> (Self, Self) {
|
1000
|
+
let (left, right) = self.slice.split_at_mut(index);
|
1001
|
+
(
|
1002
|
+
IterMutProducer { slice: left },
|
1003
|
+
IterMutProducer { slice: right },
|
1004
|
+
)
|
1005
|
+
}
|
1006
|
+
}
|
1007
|
+
|
1008
|
+
/// Parallel iterator over slices separated by a predicate
|
1009
|
+
pub struct Split<'data, T, P> {
|
1010
|
+
slice: &'data [T],
|
1011
|
+
separator: P,
|
1012
|
+
}
|
1013
|
+
|
1014
|
+
impl<T, P: Clone> Clone for Split<'_, T, P> {
|
1015
|
+
fn clone(&self) -> Self {
|
1016
|
+
Split {
|
1017
|
+
separator: self.separator.clone(),
|
1018
|
+
..*self
|
1019
|
+
}
|
1020
|
+
}
|
1021
|
+
}
|
1022
|
+
|
1023
|
+
impl<T: Debug, P> Debug for Split<'_, T, P> {
|
1024
|
+
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
1025
|
+
f.debug_struct("Split").field("slice", &self.slice).finish()
|
1026
|
+
}
|
1027
|
+
}
|
1028
|
+
|
1029
|
+
impl<'data, T, P> ParallelIterator for Split<'data, T, P>
|
1030
|
+
where
|
1031
|
+
P: Fn(&T) -> bool + Sync + Send,
|
1032
|
+
T: Sync,
|
1033
|
+
{
|
1034
|
+
type Item = &'data [T];
|
1035
|
+
|
1036
|
+
fn drive_unindexed<C>(self, consumer: C) -> C::Result
|
1037
|
+
where
|
1038
|
+
C: UnindexedConsumer<Self::Item>,
|
1039
|
+
{
|
1040
|
+
let producer = SplitProducer::new(self.slice, &self.separator);
|
1041
|
+
bridge_unindexed(producer, consumer)
|
1042
|
+
}
|
1043
|
+
}
|
1044
|
+
|
1045
|
+
/// Parallel iterator over slices separated by a predicate,
|
1046
|
+
/// including the matched part as a terminator.
|
1047
|
+
pub struct SplitInclusive<'data, T, P> {
|
1048
|
+
slice: &'data [T],
|
1049
|
+
separator: P,
|
1050
|
+
}
|
1051
|
+
|
1052
|
+
impl<T, P: Clone> Clone for SplitInclusive<'_, T, P> {
|
1053
|
+
fn clone(&self) -> Self {
|
1054
|
+
SplitInclusive {
|
1055
|
+
separator: self.separator.clone(),
|
1056
|
+
..*self
|
1057
|
+
}
|
1058
|
+
}
|
1059
|
+
}
|
1060
|
+
|
1061
|
+
impl<T: Debug, P> Debug for SplitInclusive<'_, T, P> {
|
1062
|
+
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
1063
|
+
f.debug_struct("SplitInclusive")
|
1064
|
+
.field("slice", &self.slice)
|
1065
|
+
.finish()
|
1066
|
+
}
|
1067
|
+
}
|
1068
|
+
|
1069
|
+
impl<'data, T, P> ParallelIterator for SplitInclusive<'data, T, P>
|
1070
|
+
where
|
1071
|
+
P: Fn(&T) -> bool + Sync + Send,
|
1072
|
+
T: Sync,
|
1073
|
+
{
|
1074
|
+
type Item = &'data [T];
|
1075
|
+
|
1076
|
+
fn drive_unindexed<C>(self, consumer: C) -> C::Result
|
1077
|
+
where
|
1078
|
+
C: UnindexedConsumer<Self::Item>,
|
1079
|
+
{
|
1080
|
+
let producer = SplitInclusiveProducer::new_incl(self.slice, &self.separator);
|
1081
|
+
bridge_unindexed(producer, consumer)
|
1082
|
+
}
|
1083
|
+
}
|
1084
|
+
|
1085
|
+
/// Implement support for `SplitProducer`.
|
1086
|
+
impl<T, P> Fissile<P> for &[T]
|
1087
|
+
where
|
1088
|
+
P: Fn(&T) -> bool,
|
1089
|
+
{
|
1090
|
+
fn length(&self) -> usize {
|
1091
|
+
self.len()
|
1092
|
+
}
|
1093
|
+
|
1094
|
+
fn midpoint(&self, end: usize) -> usize {
|
1095
|
+
end / 2
|
1096
|
+
}
|
1097
|
+
|
1098
|
+
fn find(&self, separator: &P, start: usize, end: usize) -> Option<usize> {
|
1099
|
+
self[start..end].iter().position(separator)
|
1100
|
+
}
|
1101
|
+
|
1102
|
+
fn rfind(&self, separator: &P, end: usize) -> Option<usize> {
|
1103
|
+
self[..end].iter().rposition(separator)
|
1104
|
+
}
|
1105
|
+
|
1106
|
+
fn split_once<const INCL: bool>(self, index: usize) -> (Self, Self) {
|
1107
|
+
if INCL {
|
1108
|
+
// include the separator in the left side
|
1109
|
+
self.split_at(index + 1)
|
1110
|
+
} else {
|
1111
|
+
let (left, right) = self.split_at(index);
|
1112
|
+
(left, &right[1..]) // skip the separator
|
1113
|
+
}
|
1114
|
+
}
|
1115
|
+
|
1116
|
+
fn fold_splits<F, const INCL: bool>(self, separator: &P, folder: F, skip_last: bool) -> F
|
1117
|
+
where
|
1118
|
+
F: Folder<Self>,
|
1119
|
+
Self: Send,
|
1120
|
+
{
|
1121
|
+
if INCL {
|
1122
|
+
debug_assert!(!skip_last);
|
1123
|
+
folder.consume_iter(self.split_inclusive(separator))
|
1124
|
+
} else {
|
1125
|
+
let mut split = self.split(separator);
|
1126
|
+
if skip_last {
|
1127
|
+
split.next_back();
|
1128
|
+
}
|
1129
|
+
folder.consume_iter(split)
|
1130
|
+
}
|
1131
|
+
}
|
1132
|
+
}
|
1133
|
+
|
1134
|
+
/// Parallel iterator over mutable slices separated by a predicate
|
1135
|
+
pub struct SplitMut<'data, T, P> {
|
1136
|
+
slice: &'data mut [T],
|
1137
|
+
separator: P,
|
1138
|
+
}
|
1139
|
+
|
1140
|
+
impl<T: Debug, P> Debug for SplitMut<'_, T, P> {
|
1141
|
+
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
1142
|
+
f.debug_struct("SplitMut")
|
1143
|
+
.field("slice", &self.slice)
|
1144
|
+
.finish()
|
1145
|
+
}
|
1146
|
+
}
|
1147
|
+
|
1148
|
+
impl<'data, T, P> ParallelIterator for SplitMut<'data, T, P>
|
1149
|
+
where
|
1150
|
+
P: Fn(&T) -> bool + Sync + Send,
|
1151
|
+
T: Send,
|
1152
|
+
{
|
1153
|
+
type Item = &'data mut [T];
|
1154
|
+
|
1155
|
+
fn drive_unindexed<C>(self, consumer: C) -> C::Result
|
1156
|
+
where
|
1157
|
+
C: UnindexedConsumer<Self::Item>,
|
1158
|
+
{
|
1159
|
+
let producer = SplitProducer::new(self.slice, &self.separator);
|
1160
|
+
bridge_unindexed(producer, consumer)
|
1161
|
+
}
|
1162
|
+
}
|
1163
|
+
|
1164
|
+
/// Parallel iterator over mutable slices separated by a predicate,
|
1165
|
+
/// including the matched part as a terminator.
|
1166
|
+
pub struct SplitInclusiveMut<'data, T, P> {
|
1167
|
+
slice: &'data mut [T],
|
1168
|
+
separator: P,
|
1169
|
+
}
|
1170
|
+
|
1171
|
+
impl<T: Debug, P> Debug for SplitInclusiveMut<'_, T, P> {
|
1172
|
+
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
1173
|
+
f.debug_struct("SplitInclusiveMut")
|
1174
|
+
.field("slice", &self.slice)
|
1175
|
+
.finish()
|
1176
|
+
}
|
1177
|
+
}
|
1178
|
+
|
1179
|
+
impl<'data, T, P> ParallelIterator for SplitInclusiveMut<'data, T, P>
|
1180
|
+
where
|
1181
|
+
P: Fn(&T) -> bool + Sync + Send,
|
1182
|
+
T: Send,
|
1183
|
+
{
|
1184
|
+
type Item = &'data mut [T];
|
1185
|
+
|
1186
|
+
fn drive_unindexed<C>(self, consumer: C) -> C::Result
|
1187
|
+
where
|
1188
|
+
C: UnindexedConsumer<Self::Item>,
|
1189
|
+
{
|
1190
|
+
let producer = SplitInclusiveProducer::new_incl(self.slice, &self.separator);
|
1191
|
+
bridge_unindexed(producer, consumer)
|
1192
|
+
}
|
1193
|
+
}
|
1194
|
+
|
1195
|
+
/// Implement support for `SplitProducer`.
|
1196
|
+
impl<T, P> Fissile<P> for &mut [T]
|
1197
|
+
where
|
1198
|
+
P: Fn(&T) -> bool,
|
1199
|
+
{
|
1200
|
+
fn length(&self) -> usize {
|
1201
|
+
self.len()
|
1202
|
+
}
|
1203
|
+
|
1204
|
+
fn midpoint(&self, end: usize) -> usize {
|
1205
|
+
end / 2
|
1206
|
+
}
|
1207
|
+
|
1208
|
+
fn find(&self, separator: &P, start: usize, end: usize) -> Option<usize> {
|
1209
|
+
self[start..end].iter().position(separator)
|
1210
|
+
}
|
1211
|
+
|
1212
|
+
fn rfind(&self, separator: &P, end: usize) -> Option<usize> {
|
1213
|
+
self[..end].iter().rposition(separator)
|
1214
|
+
}
|
1215
|
+
|
1216
|
+
fn split_once<const INCL: bool>(self, index: usize) -> (Self, Self) {
|
1217
|
+
if INCL {
|
1218
|
+
// include the separator in the left side
|
1219
|
+
self.split_at_mut(index + 1)
|
1220
|
+
} else {
|
1221
|
+
let (left, right) = self.split_at_mut(index);
|
1222
|
+
(left, &mut right[1..]) // skip the separator
|
1223
|
+
}
|
1224
|
+
}
|
1225
|
+
|
1226
|
+
fn fold_splits<F, const INCL: bool>(self, separator: &P, folder: F, skip_last: bool) -> F
|
1227
|
+
where
|
1228
|
+
F: Folder<Self>,
|
1229
|
+
Self: Send,
|
1230
|
+
{
|
1231
|
+
if INCL {
|
1232
|
+
debug_assert!(!skip_last);
|
1233
|
+
folder.consume_iter(self.split_inclusive_mut(separator))
|
1234
|
+
} else {
|
1235
|
+
let mut split = self.split_mut(separator);
|
1236
|
+
if skip_last {
|
1237
|
+
split.next_back();
|
1238
|
+
}
|
1239
|
+
folder.consume_iter(split)
|
1240
|
+
}
|
1241
|
+
}
|
1242
|
+
}
|