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,1002 @@
|
|
1
|
+
use crate::job::{JobFifo, JobRef, StackJob};
|
2
|
+
use crate::latch::{AsCoreLatch, CoreLatch, Latch, LatchRef, LockLatch, OnceLatch, SpinLatch};
|
3
|
+
use crate::sleep::Sleep;
|
4
|
+
use crate::sync::Mutex;
|
5
|
+
use crate::unwind;
|
6
|
+
use crate::{
|
7
|
+
ErrorKind, ExitHandler, PanicHandler, StartHandler, ThreadPoolBuildError, ThreadPoolBuilder,
|
8
|
+
Yield,
|
9
|
+
};
|
10
|
+
use crossbeam_deque::{Injector, Steal, Stealer, Worker};
|
11
|
+
use std::cell::Cell;
|
12
|
+
use std::fmt;
|
13
|
+
use std::hash::{DefaultHasher, Hasher};
|
14
|
+
use std::io;
|
15
|
+
use std::mem;
|
16
|
+
use std::ptr;
|
17
|
+
use std::sync::atomic::{AtomicUsize, Ordering};
|
18
|
+
use std::sync::{Arc, Once};
|
19
|
+
use std::thread;
|
20
|
+
|
21
|
+
/// Thread builder used for customization via [`ThreadPoolBuilder::spawn_handler()`].
|
22
|
+
pub struct ThreadBuilder {
|
23
|
+
name: Option<String>,
|
24
|
+
stack_size: Option<usize>,
|
25
|
+
worker: Worker<JobRef>,
|
26
|
+
stealer: Stealer<JobRef>,
|
27
|
+
registry: Arc<Registry>,
|
28
|
+
index: usize,
|
29
|
+
}
|
30
|
+
|
31
|
+
impl ThreadBuilder {
|
32
|
+
/// Gets the index of this thread in the pool, within `0..num_threads`.
|
33
|
+
pub fn index(&self) -> usize {
|
34
|
+
self.index
|
35
|
+
}
|
36
|
+
|
37
|
+
/// Gets the string that was specified by `ThreadPoolBuilder::name()`.
|
38
|
+
pub fn name(&self) -> Option<&str> {
|
39
|
+
self.name.as_deref()
|
40
|
+
}
|
41
|
+
|
42
|
+
/// Gets the value that was specified by `ThreadPoolBuilder::stack_size()`.
|
43
|
+
pub fn stack_size(&self) -> Option<usize> {
|
44
|
+
self.stack_size
|
45
|
+
}
|
46
|
+
|
47
|
+
/// Executes the main loop for this thread. This will not return until the
|
48
|
+
/// thread pool is dropped.
|
49
|
+
pub fn run(self) {
|
50
|
+
unsafe { main_loop(self) }
|
51
|
+
}
|
52
|
+
}
|
53
|
+
|
54
|
+
impl fmt::Debug for ThreadBuilder {
|
55
|
+
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
56
|
+
f.debug_struct("ThreadBuilder")
|
57
|
+
.field("pool", &self.registry.id())
|
58
|
+
.field("index", &self.index)
|
59
|
+
.field("name", &self.name)
|
60
|
+
.field("stack_size", &self.stack_size)
|
61
|
+
.finish()
|
62
|
+
}
|
63
|
+
}
|
64
|
+
|
65
|
+
/// Generalized trait for spawning a thread in the `Registry`.
|
66
|
+
///
|
67
|
+
/// This trait is pub-in-private -- E0445 forces us to make it public,
|
68
|
+
/// but we don't actually want to expose these details in the API.
|
69
|
+
pub trait ThreadSpawn {
|
70
|
+
private_decl! {}
|
71
|
+
|
72
|
+
/// Spawn a thread with the `ThreadBuilder` parameters, and then
|
73
|
+
/// call `ThreadBuilder::run()`.
|
74
|
+
fn spawn(&mut self, thread: ThreadBuilder) -> io::Result<()>;
|
75
|
+
}
|
76
|
+
|
77
|
+
/// Spawns a thread in the "normal" way with `std::thread::Builder`.
|
78
|
+
///
|
79
|
+
/// This type is pub-in-private -- E0445 forces us to make it public,
|
80
|
+
/// but we don't actually want to expose these details in the API.
|
81
|
+
#[derive(Debug, Default)]
|
82
|
+
pub struct DefaultSpawn;
|
83
|
+
|
84
|
+
impl ThreadSpawn for DefaultSpawn {
|
85
|
+
private_impl! {}
|
86
|
+
|
87
|
+
fn spawn(&mut self, thread: ThreadBuilder) -> io::Result<()> {
|
88
|
+
let mut b = thread::Builder::new();
|
89
|
+
if let Some(name) = thread.name() {
|
90
|
+
b = b.name(name.to_owned());
|
91
|
+
}
|
92
|
+
if let Some(stack_size) = thread.stack_size() {
|
93
|
+
b = b.stack_size(stack_size);
|
94
|
+
}
|
95
|
+
b.spawn(|| thread.run())?;
|
96
|
+
Ok(())
|
97
|
+
}
|
98
|
+
}
|
99
|
+
|
100
|
+
/// Spawns a thread with a user's custom callback.
|
101
|
+
///
|
102
|
+
/// This type is pub-in-private -- E0445 forces us to make it public,
|
103
|
+
/// but we don't actually want to expose these details in the API.
|
104
|
+
#[derive(Debug)]
|
105
|
+
pub struct CustomSpawn<F>(F);
|
106
|
+
|
107
|
+
impl<F> CustomSpawn<F>
|
108
|
+
where
|
109
|
+
F: FnMut(ThreadBuilder) -> io::Result<()>,
|
110
|
+
{
|
111
|
+
pub(super) fn new(spawn: F) -> Self {
|
112
|
+
CustomSpawn(spawn)
|
113
|
+
}
|
114
|
+
}
|
115
|
+
|
116
|
+
impl<F> ThreadSpawn for CustomSpawn<F>
|
117
|
+
where
|
118
|
+
F: FnMut(ThreadBuilder) -> io::Result<()>,
|
119
|
+
{
|
120
|
+
private_impl! {}
|
121
|
+
|
122
|
+
#[inline]
|
123
|
+
fn spawn(&mut self, thread: ThreadBuilder) -> io::Result<()> {
|
124
|
+
(self.0)(thread)
|
125
|
+
}
|
126
|
+
}
|
127
|
+
|
128
|
+
pub(super) struct Registry {
|
129
|
+
thread_infos: Vec<ThreadInfo>,
|
130
|
+
sleep: Sleep,
|
131
|
+
injected_jobs: Injector<JobRef>,
|
132
|
+
broadcasts: Mutex<Vec<Worker<JobRef>>>,
|
133
|
+
panic_handler: Option<Box<PanicHandler>>,
|
134
|
+
start_handler: Option<Box<StartHandler>>,
|
135
|
+
exit_handler: Option<Box<ExitHandler>>,
|
136
|
+
|
137
|
+
// When this latch reaches 0, it means that all work on this
|
138
|
+
// registry must be complete. This is ensured in the following ways:
|
139
|
+
//
|
140
|
+
// - if this is the global registry, there is a ref-count that never
|
141
|
+
// gets released.
|
142
|
+
// - if this is a user-created thread pool, then so long as the thread pool
|
143
|
+
// exists, it holds a reference.
|
144
|
+
// - when we inject a "blocking job" into the registry with `ThreadPool::install()`,
|
145
|
+
// no adjustment is needed; the `ThreadPool` holds the reference, and since we won't
|
146
|
+
// return until the blocking job is complete, that ref will continue to be held.
|
147
|
+
// - when `join()` or `scope()` is invoked, similarly, no adjustments are needed.
|
148
|
+
// These are always owned by some other job (e.g., one injected by `ThreadPool::install()`)
|
149
|
+
// and that job will keep the pool alive.
|
150
|
+
terminate_count: AtomicUsize,
|
151
|
+
}
|
152
|
+
|
153
|
+
// ////////////////////////////////////////////////////////////////////////
|
154
|
+
// Initialization
|
155
|
+
|
156
|
+
static mut THE_REGISTRY: Option<Arc<Registry>> = None;
|
157
|
+
static THE_REGISTRY_SET: Once = Once::new();
|
158
|
+
|
159
|
+
/// Starts the worker threads (if that has not already happened). If
|
160
|
+
/// initialization has not already occurred, use the default
|
161
|
+
/// configuration.
|
162
|
+
pub(super) fn global_registry() -> &'static Arc<Registry> {
|
163
|
+
set_global_registry(default_global_registry)
|
164
|
+
.or_else(|err| {
|
165
|
+
// SAFETY: we only create a shared reference to `THE_REGISTRY` after the `call_once`
|
166
|
+
// that initializes it, and there will be no more mutable accesses at all.
|
167
|
+
debug_assert!(THE_REGISTRY_SET.is_completed());
|
168
|
+
let the_registry = unsafe { &*ptr::addr_of!(THE_REGISTRY) };
|
169
|
+
the_registry.as_ref().ok_or(err)
|
170
|
+
})
|
171
|
+
.expect("The global thread pool has not been initialized.")
|
172
|
+
}
|
173
|
+
|
174
|
+
/// Starts the worker threads (if that has not already happened) with
|
175
|
+
/// the given builder.
|
176
|
+
pub(super) fn init_global_registry<S>(
|
177
|
+
builder: ThreadPoolBuilder<S>,
|
178
|
+
) -> Result<&'static Arc<Registry>, ThreadPoolBuildError>
|
179
|
+
where
|
180
|
+
S: ThreadSpawn,
|
181
|
+
{
|
182
|
+
set_global_registry(|| Registry::new(builder))
|
183
|
+
}
|
184
|
+
|
185
|
+
/// Starts the worker threads (if that has not already happened)
|
186
|
+
/// by creating a registry with the given callback.
|
187
|
+
fn set_global_registry<F>(registry: F) -> Result<&'static Arc<Registry>, ThreadPoolBuildError>
|
188
|
+
where
|
189
|
+
F: FnOnce() -> Result<Arc<Registry>, ThreadPoolBuildError>,
|
190
|
+
{
|
191
|
+
let mut result = Err(ThreadPoolBuildError::new(
|
192
|
+
ErrorKind::GlobalPoolAlreadyInitialized,
|
193
|
+
));
|
194
|
+
|
195
|
+
THE_REGISTRY_SET.call_once(|| {
|
196
|
+
result = registry().map(|registry: Arc<Registry>| {
|
197
|
+
// SAFETY: this is the only mutable access to `THE_REGISTRY`, thanks to `Once`, and
|
198
|
+
// `global_registry()` only takes a shared reference **after** this `call_once`.
|
199
|
+
unsafe {
|
200
|
+
ptr::addr_of_mut!(THE_REGISTRY).write(Some(registry));
|
201
|
+
(*ptr::addr_of!(THE_REGISTRY)).as_ref().unwrap_unchecked()
|
202
|
+
}
|
203
|
+
})
|
204
|
+
});
|
205
|
+
|
206
|
+
result
|
207
|
+
}
|
208
|
+
|
209
|
+
fn default_global_registry() -> Result<Arc<Registry>, ThreadPoolBuildError> {
|
210
|
+
let result = Registry::new(ThreadPoolBuilder::new());
|
211
|
+
|
212
|
+
// If we're running in an environment that doesn't support threads at all, we can fall back to
|
213
|
+
// using the current thread alone. This is crude, and probably won't work for non-blocking
|
214
|
+
// calls like `spawn` or `broadcast_spawn`, but a lot of stuff does work fine.
|
215
|
+
//
|
216
|
+
// Notably, this allows current WebAssembly targets to work even though their threading support
|
217
|
+
// is stubbed out, and we won't have to change anything if they do add real threading.
|
218
|
+
let unsupported = matches!(&result, Err(e) if e.is_unsupported());
|
219
|
+
if unsupported && WorkerThread::current().is_null() {
|
220
|
+
let builder = ThreadPoolBuilder::new().num_threads(1).use_current_thread();
|
221
|
+
let fallback_result = Registry::new(builder);
|
222
|
+
if fallback_result.is_ok() {
|
223
|
+
return fallback_result;
|
224
|
+
}
|
225
|
+
}
|
226
|
+
|
227
|
+
result
|
228
|
+
}
|
229
|
+
|
230
|
+
struct Terminator<'a>(&'a Arc<Registry>);
|
231
|
+
|
232
|
+
impl<'a> Drop for Terminator<'a> {
|
233
|
+
fn drop(&mut self) {
|
234
|
+
self.0.terminate()
|
235
|
+
}
|
236
|
+
}
|
237
|
+
|
238
|
+
impl Registry {
|
239
|
+
pub(super) fn new<S>(
|
240
|
+
mut builder: ThreadPoolBuilder<S>,
|
241
|
+
) -> Result<Arc<Self>, ThreadPoolBuildError>
|
242
|
+
where
|
243
|
+
S: ThreadSpawn,
|
244
|
+
{
|
245
|
+
// Soft-limit the number of threads that we can actually support.
|
246
|
+
let n_threads = Ord::min(builder.get_num_threads(), crate::max_num_threads());
|
247
|
+
|
248
|
+
let breadth_first = builder.get_breadth_first();
|
249
|
+
|
250
|
+
let (workers, stealers): (Vec<_>, Vec<_>) = (0..n_threads)
|
251
|
+
.map(|_| {
|
252
|
+
let worker = if breadth_first {
|
253
|
+
Worker::new_fifo()
|
254
|
+
} else {
|
255
|
+
Worker::new_lifo()
|
256
|
+
};
|
257
|
+
|
258
|
+
let stealer = worker.stealer();
|
259
|
+
(worker, stealer)
|
260
|
+
})
|
261
|
+
.unzip();
|
262
|
+
|
263
|
+
let (broadcasts, broadcast_stealers): (Vec<_>, Vec<_>) = (0..n_threads)
|
264
|
+
.map(|_| {
|
265
|
+
let worker = Worker::new_fifo();
|
266
|
+
let stealer = worker.stealer();
|
267
|
+
(worker, stealer)
|
268
|
+
})
|
269
|
+
.unzip();
|
270
|
+
|
271
|
+
let registry = Arc::new(Registry {
|
272
|
+
thread_infos: stealers.into_iter().map(ThreadInfo::new).collect(),
|
273
|
+
sleep: Sleep::new(n_threads),
|
274
|
+
injected_jobs: Injector::new(),
|
275
|
+
broadcasts: Mutex::new(broadcasts),
|
276
|
+
terminate_count: AtomicUsize::new(1),
|
277
|
+
panic_handler: builder.take_panic_handler(),
|
278
|
+
start_handler: builder.take_start_handler(),
|
279
|
+
exit_handler: builder.take_exit_handler(),
|
280
|
+
});
|
281
|
+
|
282
|
+
// If we return early or panic, make sure to terminate existing threads.
|
283
|
+
let t1000 = Terminator(®istry);
|
284
|
+
|
285
|
+
for (index, (worker, stealer)) in workers.into_iter().zip(broadcast_stealers).enumerate() {
|
286
|
+
let thread = ThreadBuilder {
|
287
|
+
name: builder.get_thread_name(index),
|
288
|
+
stack_size: builder.get_stack_size(),
|
289
|
+
registry: Arc::clone(®istry),
|
290
|
+
worker,
|
291
|
+
stealer,
|
292
|
+
index,
|
293
|
+
};
|
294
|
+
|
295
|
+
if index == 0 && builder.use_current_thread {
|
296
|
+
if !WorkerThread::current().is_null() {
|
297
|
+
return Err(ThreadPoolBuildError::new(
|
298
|
+
ErrorKind::CurrentThreadAlreadyInPool,
|
299
|
+
));
|
300
|
+
}
|
301
|
+
// Rather than starting a new thread, we're just taking over the current thread
|
302
|
+
// *without* running the main loop, so we can still return from here.
|
303
|
+
// The WorkerThread is leaked, but we never shutdown the global pool anyway.
|
304
|
+
let worker_thread = Box::into_raw(Box::new(WorkerThread::from(thread)));
|
305
|
+
|
306
|
+
unsafe {
|
307
|
+
WorkerThread::set_current(worker_thread);
|
308
|
+
Latch::set(®istry.thread_infos[index].primed);
|
309
|
+
}
|
310
|
+
continue;
|
311
|
+
}
|
312
|
+
|
313
|
+
if let Err(e) = builder.get_spawn_handler().spawn(thread) {
|
314
|
+
return Err(ThreadPoolBuildError::new(ErrorKind::IOError(e)));
|
315
|
+
}
|
316
|
+
}
|
317
|
+
|
318
|
+
// Returning normally now, without termination.
|
319
|
+
mem::forget(t1000);
|
320
|
+
|
321
|
+
Ok(registry)
|
322
|
+
}
|
323
|
+
|
324
|
+
pub(super) fn current() -> Arc<Registry> {
|
325
|
+
unsafe {
|
326
|
+
let worker_thread = WorkerThread::current();
|
327
|
+
let registry = if worker_thread.is_null() {
|
328
|
+
global_registry()
|
329
|
+
} else {
|
330
|
+
&(*worker_thread).registry
|
331
|
+
};
|
332
|
+
Arc::clone(registry)
|
333
|
+
}
|
334
|
+
}
|
335
|
+
|
336
|
+
/// Returns the number of threads in the current registry. This
|
337
|
+
/// is better than `Registry::current().num_threads()` because it
|
338
|
+
/// avoids incrementing the `Arc`.
|
339
|
+
pub(super) fn current_num_threads() -> usize {
|
340
|
+
unsafe {
|
341
|
+
let worker_thread = WorkerThread::current();
|
342
|
+
if worker_thread.is_null() {
|
343
|
+
global_registry().num_threads()
|
344
|
+
} else {
|
345
|
+
(*worker_thread).registry.num_threads()
|
346
|
+
}
|
347
|
+
}
|
348
|
+
}
|
349
|
+
|
350
|
+
/// Returns the current `WorkerThread` if it's part of this `Registry`.
|
351
|
+
pub(super) fn current_thread(&self) -> Option<&WorkerThread> {
|
352
|
+
unsafe {
|
353
|
+
let worker = WorkerThread::current().as_ref()?;
|
354
|
+
if worker.registry().id() == self.id() {
|
355
|
+
Some(worker)
|
356
|
+
} else {
|
357
|
+
None
|
358
|
+
}
|
359
|
+
}
|
360
|
+
}
|
361
|
+
|
362
|
+
/// Returns an opaque identifier for this registry.
|
363
|
+
pub(super) fn id(&self) -> RegistryId {
|
364
|
+
// We can rely on `self` not to change since we only ever create
|
365
|
+
// registries that are boxed up in an `Arc` (see `new()` above).
|
366
|
+
RegistryId {
|
367
|
+
addr: self as *const Self as usize,
|
368
|
+
}
|
369
|
+
}
|
370
|
+
|
371
|
+
pub(super) fn num_threads(&self) -> usize {
|
372
|
+
self.thread_infos.len()
|
373
|
+
}
|
374
|
+
|
375
|
+
pub(super) fn catch_unwind(&self, f: impl FnOnce()) {
|
376
|
+
if let Err(err) = unwind::halt_unwinding(f) {
|
377
|
+
// If there is no handler, or if that handler itself panics, then we abort.
|
378
|
+
let abort_guard = unwind::AbortIfPanic;
|
379
|
+
if let Some(ref handler) = self.panic_handler {
|
380
|
+
handler(err);
|
381
|
+
mem::forget(abort_guard);
|
382
|
+
}
|
383
|
+
}
|
384
|
+
}
|
385
|
+
|
386
|
+
/// Waits for the worker threads to get up and running. This is
|
387
|
+
/// meant to be used for benchmarking purposes, primarily, so that
|
388
|
+
/// you can get more consistent numbers by having everything
|
389
|
+
/// "ready to go".
|
390
|
+
pub(super) fn wait_until_primed(&self) {
|
391
|
+
for info in &self.thread_infos {
|
392
|
+
info.primed.wait();
|
393
|
+
}
|
394
|
+
}
|
395
|
+
|
396
|
+
/// Waits for the worker threads to stop. This is used for testing
|
397
|
+
/// -- so we can check that termination actually works.
|
398
|
+
#[cfg(test)]
|
399
|
+
pub(super) fn wait_until_stopped(&self) {
|
400
|
+
for info in &self.thread_infos {
|
401
|
+
info.stopped.wait();
|
402
|
+
}
|
403
|
+
}
|
404
|
+
|
405
|
+
// ////////////////////////////////////////////////////////////////////////
|
406
|
+
// MAIN LOOP
|
407
|
+
//
|
408
|
+
// So long as all of the worker threads are hanging out in their
|
409
|
+
// top-level loop, there is no work to be done.
|
410
|
+
|
411
|
+
/// Push a job into the given `registry`. If we are running on a
|
412
|
+
/// worker thread for the registry, this will push onto the
|
413
|
+
/// deque. Else, it will inject from the outside (which is slower).
|
414
|
+
pub(super) fn inject_or_push(&self, job_ref: JobRef) {
|
415
|
+
let worker_thread = WorkerThread::current();
|
416
|
+
unsafe {
|
417
|
+
if !worker_thread.is_null() && (*worker_thread).registry().id() == self.id() {
|
418
|
+
(*worker_thread).push(job_ref);
|
419
|
+
} else {
|
420
|
+
self.inject(job_ref);
|
421
|
+
}
|
422
|
+
}
|
423
|
+
}
|
424
|
+
|
425
|
+
/// Push a job into the "external jobs" queue; it will be taken by
|
426
|
+
/// whatever worker has nothing to do. Use this if you know that
|
427
|
+
/// you are not on a worker of this registry.
|
428
|
+
pub(super) fn inject(&self, injected_job: JobRef) {
|
429
|
+
// It should not be possible for `state.terminate` to be true
|
430
|
+
// here. It is only set to true when the user creates (and
|
431
|
+
// drops) a `ThreadPool`; and, in that case, they cannot be
|
432
|
+
// calling `inject()` later, since they dropped their
|
433
|
+
// `ThreadPool`.
|
434
|
+
debug_assert_ne!(
|
435
|
+
self.terminate_count.load(Ordering::Acquire),
|
436
|
+
0,
|
437
|
+
"inject() sees state.terminate as true"
|
438
|
+
);
|
439
|
+
|
440
|
+
let queue_was_empty = self.injected_jobs.is_empty();
|
441
|
+
|
442
|
+
self.injected_jobs.push(injected_job);
|
443
|
+
self.sleep.new_injected_jobs(1, queue_was_empty);
|
444
|
+
}
|
445
|
+
|
446
|
+
fn has_injected_job(&self) -> bool {
|
447
|
+
!self.injected_jobs.is_empty()
|
448
|
+
}
|
449
|
+
|
450
|
+
fn pop_injected_job(&self) -> Option<JobRef> {
|
451
|
+
loop {
|
452
|
+
match self.injected_jobs.steal() {
|
453
|
+
Steal::Success(job) => return Some(job),
|
454
|
+
Steal::Empty => return None,
|
455
|
+
Steal::Retry => {}
|
456
|
+
}
|
457
|
+
}
|
458
|
+
}
|
459
|
+
|
460
|
+
/// Push a job into each thread's own "external jobs" queue; it will be
|
461
|
+
/// executed only on that thread, when it has nothing else to do locally,
|
462
|
+
/// before it tries to steal other work.
|
463
|
+
///
|
464
|
+
/// **Panics** if not given exactly as many jobs as there are threads.
|
465
|
+
pub(super) fn inject_broadcast(&self, injected_jobs: impl ExactSizeIterator<Item = JobRef>) {
|
466
|
+
assert_eq!(self.num_threads(), injected_jobs.len());
|
467
|
+
{
|
468
|
+
let broadcasts = self.broadcasts.lock().unwrap();
|
469
|
+
|
470
|
+
// It should not be possible for `state.terminate` to be true
|
471
|
+
// here. It is only set to true when the user creates (and
|
472
|
+
// drops) a `ThreadPool`; and, in that case, they cannot be
|
473
|
+
// calling `inject_broadcast()` later, since they dropped their
|
474
|
+
// `ThreadPool`.
|
475
|
+
debug_assert_ne!(
|
476
|
+
self.terminate_count.load(Ordering::Acquire),
|
477
|
+
0,
|
478
|
+
"inject_broadcast() sees state.terminate as true"
|
479
|
+
);
|
480
|
+
|
481
|
+
assert_eq!(broadcasts.len(), injected_jobs.len());
|
482
|
+
for (worker, job_ref) in broadcasts.iter().zip(injected_jobs) {
|
483
|
+
worker.push(job_ref);
|
484
|
+
}
|
485
|
+
}
|
486
|
+
for i in 0..self.num_threads() {
|
487
|
+
self.sleep.notify_worker_latch_is_set(i);
|
488
|
+
}
|
489
|
+
}
|
490
|
+
|
491
|
+
/// If already in a worker-thread of this registry, just execute `op`.
|
492
|
+
/// Otherwise, inject `op` in this thread pool. Either way, block until `op`
|
493
|
+
/// completes and return its return value. If `op` panics, that panic will
|
494
|
+
/// be propagated as well. The second argument indicates `true` if injection
|
495
|
+
/// was performed, `false` if executed directly.
|
496
|
+
pub(super) fn in_worker<OP, R>(&self, op: OP) -> R
|
497
|
+
where
|
498
|
+
OP: FnOnce(&WorkerThread, bool) -> R + Send,
|
499
|
+
R: Send,
|
500
|
+
{
|
501
|
+
unsafe {
|
502
|
+
let worker_thread = WorkerThread::current();
|
503
|
+
if worker_thread.is_null() {
|
504
|
+
self.in_worker_cold(op)
|
505
|
+
} else if (*worker_thread).registry().id() != self.id() {
|
506
|
+
self.in_worker_cross(&*worker_thread, op)
|
507
|
+
} else {
|
508
|
+
// Perfectly valid to give them a `&T`: this is the
|
509
|
+
// current thread, so we know the data structure won't be
|
510
|
+
// invalidated until we return.
|
511
|
+
op(&*worker_thread, false)
|
512
|
+
}
|
513
|
+
}
|
514
|
+
}
|
515
|
+
|
516
|
+
#[cold]
|
517
|
+
unsafe fn in_worker_cold<OP, R>(&self, op: OP) -> R
|
518
|
+
where
|
519
|
+
OP: FnOnce(&WorkerThread, bool) -> R + Send,
|
520
|
+
R: Send,
|
521
|
+
{
|
522
|
+
thread_local!(static LOCK_LATCH: LockLatch = const { LockLatch::new() });
|
523
|
+
|
524
|
+
LOCK_LATCH.with(|l| {
|
525
|
+
// This thread isn't a member of *any* thread pool, so just block.
|
526
|
+
debug_assert!(WorkerThread::current().is_null());
|
527
|
+
let job = StackJob::new(
|
528
|
+
|injected| {
|
529
|
+
let worker_thread = WorkerThread::current();
|
530
|
+
assert!(injected && !worker_thread.is_null());
|
531
|
+
op(&*worker_thread, true)
|
532
|
+
},
|
533
|
+
LatchRef::new(l),
|
534
|
+
);
|
535
|
+
self.inject(job.as_job_ref());
|
536
|
+
job.latch.wait_and_reset(); // Make sure we can use the same latch again next time.
|
537
|
+
|
538
|
+
job.into_result()
|
539
|
+
})
|
540
|
+
}
|
541
|
+
|
542
|
+
#[cold]
|
543
|
+
unsafe fn in_worker_cross<OP, R>(&self, current_thread: &WorkerThread, op: OP) -> R
|
544
|
+
where
|
545
|
+
OP: FnOnce(&WorkerThread, bool) -> R + Send,
|
546
|
+
R: Send,
|
547
|
+
{
|
548
|
+
// This thread is a member of a different pool, so let it process
|
549
|
+
// other work while waiting for this `op` to complete.
|
550
|
+
debug_assert!(current_thread.registry().id() != self.id());
|
551
|
+
let latch = SpinLatch::cross(current_thread);
|
552
|
+
let job = StackJob::new(
|
553
|
+
|injected| {
|
554
|
+
let worker_thread = WorkerThread::current();
|
555
|
+
assert!(injected && !worker_thread.is_null());
|
556
|
+
op(&*worker_thread, true)
|
557
|
+
},
|
558
|
+
latch,
|
559
|
+
);
|
560
|
+
self.inject(job.as_job_ref());
|
561
|
+
current_thread.wait_until(&job.latch);
|
562
|
+
job.into_result()
|
563
|
+
}
|
564
|
+
|
565
|
+
/// Increments the terminate counter. This increment should be
|
566
|
+
/// balanced by a call to `terminate`, which will decrement. This
|
567
|
+
/// is used when spawning asynchronous work, which needs to
|
568
|
+
/// prevent the registry from terminating so long as it is active.
|
569
|
+
///
|
570
|
+
/// Note that blocking functions such as `join` and `scope` do not
|
571
|
+
/// need to concern themselves with this fn; their context is
|
572
|
+
/// responsible for ensuring the current thread pool will not
|
573
|
+
/// terminate until they return.
|
574
|
+
///
|
575
|
+
/// The global thread pool always has an outstanding reference
|
576
|
+
/// (the initial one). Custom thread pools have one outstanding
|
577
|
+
/// reference that is dropped when the `ThreadPool` is dropped:
|
578
|
+
/// since installing the thread pool blocks until any joins/scopes
|
579
|
+
/// complete, this ensures that joins/scopes are covered.
|
580
|
+
///
|
581
|
+
/// The exception is `::spawn()`, which can create a job outside
|
582
|
+
/// of any blocking scope. In that case, the job itself holds a
|
583
|
+
/// terminate count and is responsible for invoking `terminate()`
|
584
|
+
/// when finished.
|
585
|
+
pub(super) fn increment_terminate_count(&self) {
|
586
|
+
let previous = self.terminate_count.fetch_add(1, Ordering::AcqRel);
|
587
|
+
debug_assert!(previous != 0, "registry ref count incremented from zero");
|
588
|
+
assert!(previous != usize::MAX, "overflow in registry ref count");
|
589
|
+
}
|
590
|
+
|
591
|
+
/// Signals that the thread pool which owns this registry has been
|
592
|
+
/// dropped. The worker threads will gradually terminate, once any
|
593
|
+
/// extant work is completed.
|
594
|
+
pub(super) fn terminate(&self) {
|
595
|
+
if self.terminate_count.fetch_sub(1, Ordering::AcqRel) == 1 {
|
596
|
+
for (i, thread_info) in self.thread_infos.iter().enumerate() {
|
597
|
+
unsafe { OnceLatch::set_and_tickle_one(&thread_info.terminate, self, i) };
|
598
|
+
}
|
599
|
+
}
|
600
|
+
}
|
601
|
+
|
602
|
+
/// Notify the worker that the latch they are sleeping on has been "set".
|
603
|
+
pub(super) fn notify_worker_latch_is_set(&self, target_worker_index: usize) {
|
604
|
+
self.sleep.notify_worker_latch_is_set(target_worker_index);
|
605
|
+
}
|
606
|
+
}
|
607
|
+
|
608
|
+
#[derive(Copy, Clone, Debug, PartialEq, Eq, PartialOrd, Ord)]
|
609
|
+
pub(super) struct RegistryId {
|
610
|
+
addr: usize,
|
611
|
+
}
|
612
|
+
|
613
|
+
struct ThreadInfo {
|
614
|
+
/// Latch set once thread has started and we are entering into the
|
615
|
+
/// main loop. Used to wait for worker threads to become primed,
|
616
|
+
/// primarily of interest for benchmarking.
|
617
|
+
primed: LockLatch,
|
618
|
+
|
619
|
+
/// Latch is set once worker thread has completed. Used to wait
|
620
|
+
/// until workers have stopped; only used for tests.
|
621
|
+
stopped: LockLatch,
|
622
|
+
|
623
|
+
/// The latch used to signal that terminated has been requested.
|
624
|
+
/// This latch is *set* by the `terminate` method on the
|
625
|
+
/// `Registry`, once the registry's main "terminate" counter
|
626
|
+
/// reaches zero.
|
627
|
+
terminate: OnceLatch,
|
628
|
+
|
629
|
+
/// the "stealer" half of the worker's deque
|
630
|
+
stealer: Stealer<JobRef>,
|
631
|
+
}
|
632
|
+
|
633
|
+
impl ThreadInfo {
|
634
|
+
fn new(stealer: Stealer<JobRef>) -> ThreadInfo {
|
635
|
+
ThreadInfo {
|
636
|
+
primed: LockLatch::new(),
|
637
|
+
stopped: LockLatch::new(),
|
638
|
+
terminate: OnceLatch::new(),
|
639
|
+
stealer,
|
640
|
+
}
|
641
|
+
}
|
642
|
+
}
|
643
|
+
|
644
|
+
// ////////////////////////////////////////////////////////////////////////
|
645
|
+
// WorkerThread identifiers
|
646
|
+
|
647
|
+
pub(super) struct WorkerThread {
|
648
|
+
/// the "worker" half of our local deque
|
649
|
+
worker: Worker<JobRef>,
|
650
|
+
|
651
|
+
/// the "stealer" half of the worker's broadcast deque
|
652
|
+
stealer: Stealer<JobRef>,
|
653
|
+
|
654
|
+
/// local queue used for `spawn_fifo` indirection
|
655
|
+
fifo: JobFifo,
|
656
|
+
|
657
|
+
index: usize,
|
658
|
+
|
659
|
+
/// A weak random number generator.
|
660
|
+
rng: XorShift64Star,
|
661
|
+
|
662
|
+
registry: Arc<Registry>,
|
663
|
+
}
|
664
|
+
|
665
|
+
// This is a bit sketchy, but basically: the WorkerThread is
|
666
|
+
// allocated on the stack of the worker on entry and stored into this
|
667
|
+
// thread-local variable. So it will remain valid at least until the
|
668
|
+
// worker is fully unwound. Using an unsafe pointer avoids the need
|
669
|
+
// for a RefCell<T> etc.
|
670
|
+
thread_local! {
|
671
|
+
static WORKER_THREAD_STATE: Cell<*const WorkerThread> = const { Cell::new(ptr::null()) };
|
672
|
+
}
|
673
|
+
|
674
|
+
impl From<ThreadBuilder> for WorkerThread {
|
675
|
+
fn from(thread: ThreadBuilder) -> Self {
|
676
|
+
Self {
|
677
|
+
worker: thread.worker,
|
678
|
+
stealer: thread.stealer,
|
679
|
+
fifo: JobFifo::new(),
|
680
|
+
index: thread.index,
|
681
|
+
rng: XorShift64Star::new(),
|
682
|
+
registry: thread.registry,
|
683
|
+
}
|
684
|
+
}
|
685
|
+
}
|
686
|
+
|
687
|
+
impl Drop for WorkerThread {
|
688
|
+
fn drop(&mut self) {
|
689
|
+
// Undo `set_current`
|
690
|
+
WORKER_THREAD_STATE.with(|t| {
|
691
|
+
assert!(t.get().eq(&(self as *const _)));
|
692
|
+
t.set(ptr::null());
|
693
|
+
});
|
694
|
+
}
|
695
|
+
}
|
696
|
+
|
697
|
+
impl WorkerThread {
|
698
|
+
/// Gets the `WorkerThread` index for the current thread; returns
|
699
|
+
/// NULL if this is not a worker thread. This pointer is valid
|
700
|
+
/// anywhere on the current thread.
|
701
|
+
#[inline]
|
702
|
+
pub(super) fn current() -> *const WorkerThread {
|
703
|
+
WORKER_THREAD_STATE.get()
|
704
|
+
}
|
705
|
+
|
706
|
+
/// Sets `self` as the worker-thread index for the current thread.
|
707
|
+
/// This is done during worker-thread startup.
|
708
|
+
unsafe fn set_current(thread: *const WorkerThread) {
|
709
|
+
WORKER_THREAD_STATE.with(|t| {
|
710
|
+
assert!(t.get().is_null());
|
711
|
+
t.set(thread);
|
712
|
+
});
|
713
|
+
}
|
714
|
+
|
715
|
+
/// Returns the registry that owns this worker thread.
|
716
|
+
#[inline]
|
717
|
+
pub(super) fn registry(&self) -> &Arc<Registry> {
|
718
|
+
&self.registry
|
719
|
+
}
|
720
|
+
|
721
|
+
/// Our index amongst the worker threads (ranges from `0..self.num_threads()`).
|
722
|
+
#[inline]
|
723
|
+
pub(super) fn index(&self) -> usize {
|
724
|
+
self.index
|
725
|
+
}
|
726
|
+
|
727
|
+
#[inline]
|
728
|
+
pub(super) unsafe fn push(&self, job: JobRef) {
|
729
|
+
let queue_was_empty = self.worker.is_empty();
|
730
|
+
self.worker.push(job);
|
731
|
+
self.registry.sleep.new_internal_jobs(1, queue_was_empty);
|
732
|
+
}
|
733
|
+
|
734
|
+
#[inline]
|
735
|
+
pub(super) unsafe fn push_fifo(&self, job: JobRef) {
|
736
|
+
self.push(self.fifo.push(job));
|
737
|
+
}
|
738
|
+
|
739
|
+
#[inline]
|
740
|
+
pub(super) fn local_deque_is_empty(&self) -> bool {
|
741
|
+
self.worker.is_empty()
|
742
|
+
}
|
743
|
+
|
744
|
+
/// Attempts to obtain a "local" job -- typically this means
|
745
|
+
/// popping from the top of the stack, though if we are configured
|
746
|
+
/// for breadth-first execution, it would mean dequeuing from the
|
747
|
+
/// bottom.
|
748
|
+
#[inline]
|
749
|
+
pub(super) fn take_local_job(&self) -> Option<JobRef> {
|
750
|
+
let popped_job = self.worker.pop();
|
751
|
+
|
752
|
+
if popped_job.is_some() {
|
753
|
+
return popped_job;
|
754
|
+
}
|
755
|
+
|
756
|
+
loop {
|
757
|
+
match self.stealer.steal() {
|
758
|
+
Steal::Success(job) => return Some(job),
|
759
|
+
Steal::Empty => return None,
|
760
|
+
Steal::Retry => {}
|
761
|
+
}
|
762
|
+
}
|
763
|
+
}
|
764
|
+
|
765
|
+
fn has_injected_job(&self) -> bool {
|
766
|
+
!self.stealer.is_empty() || self.registry.has_injected_job()
|
767
|
+
}
|
768
|
+
|
769
|
+
/// Wait until the latch is set. Try to keep busy by popping and
|
770
|
+
/// stealing tasks as necessary.
|
771
|
+
#[inline]
|
772
|
+
pub(super) unsafe fn wait_until<L: AsCoreLatch + ?Sized>(&self, latch: &L) {
|
773
|
+
let latch = latch.as_core_latch();
|
774
|
+
if !latch.probe() {
|
775
|
+
self.wait_until_cold(latch);
|
776
|
+
}
|
777
|
+
}
|
778
|
+
|
779
|
+
#[cold]
|
780
|
+
unsafe fn wait_until_cold(&self, latch: &CoreLatch) {
|
781
|
+
// the code below should swallow all panics and hence never
|
782
|
+
// unwind; but if something does wrong, we want to abort,
|
783
|
+
// because otherwise other code in rayon may assume that the
|
784
|
+
// latch has been signaled, and that can lead to random memory
|
785
|
+
// accesses, which would be *very bad*
|
786
|
+
let abort_guard = unwind::AbortIfPanic;
|
787
|
+
|
788
|
+
'outer: while !latch.probe() {
|
789
|
+
// Check for local work *before* we start marking ourself idle,
|
790
|
+
// especially to avoid modifying shared sleep state.
|
791
|
+
if let Some(job) = self.take_local_job() {
|
792
|
+
self.execute(job);
|
793
|
+
continue;
|
794
|
+
}
|
795
|
+
|
796
|
+
let mut idle_state = self.registry.sleep.start_looking(self.index);
|
797
|
+
while !latch.probe() {
|
798
|
+
if let Some(job) = self.find_work() {
|
799
|
+
self.registry.sleep.work_found();
|
800
|
+
self.execute(job);
|
801
|
+
// The job might have injected local work, so go back to the outer loop.
|
802
|
+
continue 'outer;
|
803
|
+
} else {
|
804
|
+
self.registry
|
805
|
+
.sleep
|
806
|
+
.no_work_found(&mut idle_state, latch, || self.has_injected_job())
|
807
|
+
}
|
808
|
+
}
|
809
|
+
|
810
|
+
// If we were sleepy, we are not anymore. We "found work" --
|
811
|
+
// whatever the surrounding thread was doing before it had to wait.
|
812
|
+
self.registry.sleep.work_found();
|
813
|
+
break;
|
814
|
+
}
|
815
|
+
|
816
|
+
mem::forget(abort_guard); // successful execution, do not abort
|
817
|
+
}
|
818
|
+
|
819
|
+
unsafe fn wait_until_out_of_work(&self) {
|
820
|
+
debug_assert_eq!(self as *const _, WorkerThread::current());
|
821
|
+
let registry = &*self.registry;
|
822
|
+
let index = self.index;
|
823
|
+
|
824
|
+
self.wait_until(®istry.thread_infos[index].terminate);
|
825
|
+
|
826
|
+
// Should not be any work left in our queue.
|
827
|
+
debug_assert!(self.take_local_job().is_none());
|
828
|
+
|
829
|
+
// Let registry know we are done
|
830
|
+
Latch::set(®istry.thread_infos[index].stopped);
|
831
|
+
}
|
832
|
+
|
833
|
+
fn find_work(&self) -> Option<JobRef> {
|
834
|
+
// Try to find some work to do. We give preference first
|
835
|
+
// to things in our local deque, then in other workers
|
836
|
+
// deques, and finally to injected jobs from the
|
837
|
+
// outside. The idea is to finish what we started before
|
838
|
+
// we take on something new.
|
839
|
+
self.take_local_job()
|
840
|
+
.or_else(|| self.steal())
|
841
|
+
.or_else(|| self.registry.pop_injected_job())
|
842
|
+
}
|
843
|
+
|
844
|
+
pub(super) fn yield_now(&self) -> Yield {
|
845
|
+
match self.find_work() {
|
846
|
+
Some(job) => unsafe {
|
847
|
+
self.execute(job);
|
848
|
+
Yield::Executed
|
849
|
+
},
|
850
|
+
None => Yield::Idle,
|
851
|
+
}
|
852
|
+
}
|
853
|
+
|
854
|
+
pub(super) fn yield_local(&self) -> Yield {
|
855
|
+
match self.take_local_job() {
|
856
|
+
Some(job) => unsafe {
|
857
|
+
self.execute(job);
|
858
|
+
Yield::Executed
|
859
|
+
},
|
860
|
+
None => Yield::Idle,
|
861
|
+
}
|
862
|
+
}
|
863
|
+
|
864
|
+
#[inline]
|
865
|
+
pub(super) unsafe fn execute(&self, job: JobRef) {
|
866
|
+
job.execute();
|
867
|
+
}
|
868
|
+
|
869
|
+
/// Try to steal a single job and return it.
|
870
|
+
///
|
871
|
+
/// This should only be done as a last resort, when there is no
|
872
|
+
/// local work to do.
|
873
|
+
fn steal(&self) -> Option<JobRef> {
|
874
|
+
// we only steal when we don't have any work to do locally
|
875
|
+
debug_assert!(self.local_deque_is_empty());
|
876
|
+
|
877
|
+
// otherwise, try to steal
|
878
|
+
let thread_infos = &self.registry.thread_infos.as_slice();
|
879
|
+
let num_threads = thread_infos.len();
|
880
|
+
if num_threads <= 1 {
|
881
|
+
return None;
|
882
|
+
}
|
883
|
+
|
884
|
+
loop {
|
885
|
+
let mut retry = false;
|
886
|
+
let start = self.rng.next_usize(num_threads);
|
887
|
+
let job = (start..num_threads)
|
888
|
+
.chain(0..start)
|
889
|
+
.filter(move |&i| i != self.index)
|
890
|
+
.find_map(|victim_index| {
|
891
|
+
let victim = &thread_infos[victim_index];
|
892
|
+
match victim.stealer.steal() {
|
893
|
+
Steal::Success(job) => Some(job),
|
894
|
+
Steal::Empty => None,
|
895
|
+
Steal::Retry => {
|
896
|
+
retry = true;
|
897
|
+
None
|
898
|
+
}
|
899
|
+
}
|
900
|
+
});
|
901
|
+
if job.is_some() || !retry {
|
902
|
+
return job;
|
903
|
+
}
|
904
|
+
}
|
905
|
+
}
|
906
|
+
}
|
907
|
+
|
908
|
+
// ////////////////////////////////////////////////////////////////////////
|
909
|
+
|
910
|
+
unsafe fn main_loop(thread: ThreadBuilder) {
|
911
|
+
let worker_thread = &WorkerThread::from(thread);
|
912
|
+
WorkerThread::set_current(worker_thread);
|
913
|
+
let registry = &*worker_thread.registry;
|
914
|
+
let index = worker_thread.index;
|
915
|
+
|
916
|
+
// let registry know we are ready to do work
|
917
|
+
Latch::set(®istry.thread_infos[index].primed);
|
918
|
+
|
919
|
+
// Worker threads should not panic. If they do, just abort, as the
|
920
|
+
// internal state of the thread pool is corrupted. Note that if
|
921
|
+
// **user code** panics, we should catch that and redirect.
|
922
|
+
let abort_guard = unwind::AbortIfPanic;
|
923
|
+
|
924
|
+
// Inform a user callback that we started a thread.
|
925
|
+
if let Some(ref handler) = registry.start_handler {
|
926
|
+
registry.catch_unwind(|| handler(index));
|
927
|
+
}
|
928
|
+
|
929
|
+
worker_thread.wait_until_out_of_work();
|
930
|
+
|
931
|
+
// Normal termination, do not abort.
|
932
|
+
mem::forget(abort_guard);
|
933
|
+
|
934
|
+
// Inform a user callback that we exited a thread.
|
935
|
+
if let Some(ref handler) = registry.exit_handler {
|
936
|
+
registry.catch_unwind(|| handler(index));
|
937
|
+
// We're already exiting the thread, there's nothing else to do.
|
938
|
+
}
|
939
|
+
}
|
940
|
+
|
941
|
+
/// If already in a worker-thread, just execute `op`. Otherwise,
|
942
|
+
/// execute `op` in the default thread pool. Either way, block until
|
943
|
+
/// `op` completes and return its return value. If `op` panics, that
|
944
|
+
/// panic will be propagated as well. The second argument indicates
|
945
|
+
/// `true` if injection was performed, `false` if executed directly.
|
946
|
+
pub(super) fn in_worker<OP, R>(op: OP) -> R
|
947
|
+
where
|
948
|
+
OP: FnOnce(&WorkerThread, bool) -> R + Send,
|
949
|
+
R: Send,
|
950
|
+
{
|
951
|
+
unsafe {
|
952
|
+
let owner_thread = WorkerThread::current();
|
953
|
+
if !owner_thread.is_null() {
|
954
|
+
// Perfectly valid to give them a `&T`: this is the
|
955
|
+
// current thread, so we know the data structure won't be
|
956
|
+
// invalidated until we return.
|
957
|
+
op(&*owner_thread, false)
|
958
|
+
} else {
|
959
|
+
global_registry().in_worker(op)
|
960
|
+
}
|
961
|
+
}
|
962
|
+
}
|
963
|
+
|
964
|
+
/// [xorshift*] is a fast pseudorandom number generator which will
|
965
|
+
/// even tolerate weak seeding, as long as it's not zero.
|
966
|
+
///
|
967
|
+
/// [xorshift*]: https://en.wikipedia.org/wiki/Xorshift#xorshift*
|
968
|
+
struct XorShift64Star {
|
969
|
+
state: Cell<u64>,
|
970
|
+
}
|
971
|
+
|
972
|
+
impl XorShift64Star {
|
973
|
+
fn new() -> Self {
|
974
|
+
// Any non-zero seed will do -- this uses the hash of a global counter.
|
975
|
+
let mut seed = 0;
|
976
|
+
while seed == 0 {
|
977
|
+
let mut hasher = DefaultHasher::new();
|
978
|
+
static COUNTER: AtomicUsize = AtomicUsize::new(0);
|
979
|
+
hasher.write_usize(COUNTER.fetch_add(1, Ordering::Relaxed));
|
980
|
+
seed = hasher.finish();
|
981
|
+
}
|
982
|
+
|
983
|
+
XorShift64Star {
|
984
|
+
state: Cell::new(seed),
|
985
|
+
}
|
986
|
+
}
|
987
|
+
|
988
|
+
fn next(&self) -> u64 {
|
989
|
+
let mut x = self.state.get();
|
990
|
+
debug_assert_ne!(x, 0);
|
991
|
+
x ^= x >> 12;
|
992
|
+
x ^= x << 25;
|
993
|
+
x ^= x >> 27;
|
994
|
+
self.state.set(x);
|
995
|
+
x.wrapping_mul(0x2545_f491_4f6c_dd1d)
|
996
|
+
}
|
997
|
+
|
998
|
+
/// Return a value from `0..n`.
|
999
|
+
fn next_usize(&self, n: usize) -> usize {
|
1000
|
+
(self.next() % n as u64) as usize
|
1001
|
+
}
|
1002
|
+
}
|