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
@@ -1,1501 +0,0 @@
|
|
1
|
-
// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
|
2
|
-
// file at the top-level directory of this distribution and at
|
3
|
-
// http://rust-lang.org/COPYRIGHT.
|
4
|
-
//
|
5
|
-
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
6
|
-
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
7
|
-
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
8
|
-
// option. This file may not be copied, modified, or distributed
|
9
|
-
// except according to those terms.
|
10
|
-
|
11
|
-
//! Support for matching file paths against Unix shell style patterns.
|
12
|
-
//!
|
13
|
-
//! The `glob` and `glob_with` functions allow querying the filesystem for all
|
14
|
-
//! files that match a particular pattern (similar to the libc `glob` function).
|
15
|
-
//! The methods on the `Pattern` type provide functionality for checking if
|
16
|
-
//! individual paths match a particular pattern (similar to the libc `fnmatch`
|
17
|
-
//! function).
|
18
|
-
//!
|
19
|
-
//! For consistency across platforms, and for Windows support, this module
|
20
|
-
//! is implemented entirely in Rust rather than deferring to the libc
|
21
|
-
//! `glob`/`fnmatch` functions.
|
22
|
-
//!
|
23
|
-
//! # Examples
|
24
|
-
//!
|
25
|
-
//! To print all jpg files in `/media/` and all of its subdirectories.
|
26
|
-
//!
|
27
|
-
//! ```rust,no_run
|
28
|
-
//! use glob::glob;
|
29
|
-
//!
|
30
|
-
//! for entry in glob("/media/**/*.jpg").expect("Failed to read glob pattern") {
|
31
|
-
//! match entry {
|
32
|
-
//! Ok(path) => println!("{:?}", path.display()),
|
33
|
-
//! Err(e) => println!("{:?}", e),
|
34
|
-
//! }
|
35
|
-
//! }
|
36
|
-
//! ```
|
37
|
-
//!
|
38
|
-
//! To print all files containing the letter "a", case insensitive, in a `local`
|
39
|
-
//! directory relative to the current working directory. This ignores errors
|
40
|
-
//! instead of printing them.
|
41
|
-
//!
|
42
|
-
//! ```rust,no_run
|
43
|
-
//! use glob::glob_with;
|
44
|
-
//! use glob::MatchOptions;
|
45
|
-
//!
|
46
|
-
//! let options = MatchOptions {
|
47
|
-
//! case_sensitive: false,
|
48
|
-
//! require_literal_separator: false,
|
49
|
-
//! require_literal_leading_dot: false,
|
50
|
-
//! };
|
51
|
-
//! for entry in glob_with("local/*a*", options).unwrap() {
|
52
|
-
//! if let Ok(path) = entry {
|
53
|
-
//! println!("{:?}", path.display())
|
54
|
-
//! }
|
55
|
-
//! }
|
56
|
-
//! ```
|
57
|
-
|
58
|
-
#![doc(
|
59
|
-
html_logo_url = "https://www.rust-lang.org/logos/rust-logo-128x128-blk-v2.png",
|
60
|
-
html_favicon_url = "https://www.rust-lang.org/favicon.ico",
|
61
|
-
html_root_url = "https://docs.rs/glob/0.3.1"
|
62
|
-
)]
|
63
|
-
#![deny(missing_docs)]
|
64
|
-
|
65
|
-
#[cfg(test)]
|
66
|
-
#[macro_use]
|
67
|
-
extern crate doc_comment;
|
68
|
-
|
69
|
-
#[cfg(test)]
|
70
|
-
doctest!("../README.md");
|
71
|
-
|
72
|
-
use std::cmp;
|
73
|
-
use std::error::Error;
|
74
|
-
use std::fmt;
|
75
|
-
use std::fs;
|
76
|
-
use std::fs::DirEntry;
|
77
|
-
use std::io;
|
78
|
-
use std::ops::Deref;
|
79
|
-
use std::path::{self, Component, Path, PathBuf};
|
80
|
-
use std::str::FromStr;
|
81
|
-
|
82
|
-
use CharSpecifier::{CharRange, SingleChar};
|
83
|
-
use MatchResult::{EntirePatternDoesntMatch, Match, SubPatternDoesntMatch};
|
84
|
-
use PatternToken::AnyExcept;
|
85
|
-
use PatternToken::{AnyChar, AnyRecursiveSequence, AnySequence, AnyWithin, Char};
|
86
|
-
|
87
|
-
/// An iterator that yields `Path`s from the filesystem that match a particular
|
88
|
-
/// pattern.
|
89
|
-
///
|
90
|
-
/// Note that it yields `GlobResult` in order to report any `IoErrors` that may
|
91
|
-
/// arise during iteration. If a directory matches but is unreadable,
|
92
|
-
/// thereby preventing its contents from being checked for matches, a
|
93
|
-
/// `GlobError` is returned to express this.
|
94
|
-
///
|
95
|
-
/// See the `glob` function for more details.
|
96
|
-
#[derive(Debug)]
|
97
|
-
pub struct Paths {
|
98
|
-
dir_patterns: Vec<Pattern>,
|
99
|
-
require_dir: bool,
|
100
|
-
options: MatchOptions,
|
101
|
-
todo: Vec<Result<(PathWrapper, usize), GlobError>>,
|
102
|
-
scope: Option<PathWrapper>,
|
103
|
-
}
|
104
|
-
|
105
|
-
/// Return an iterator that produces all the `Path`s that match the given
|
106
|
-
/// pattern using default match options, which may be absolute or relative to
|
107
|
-
/// the current working directory.
|
108
|
-
///
|
109
|
-
/// This may return an error if the pattern is invalid.
|
110
|
-
///
|
111
|
-
/// This method uses the default match options and is equivalent to calling
|
112
|
-
/// `glob_with(pattern, MatchOptions::new())`. Use `glob_with` directly if you
|
113
|
-
/// want to use non-default match options.
|
114
|
-
///
|
115
|
-
/// When iterating, each result is a `GlobResult` which expresses the
|
116
|
-
/// possibility that there was an `IoError` when attempting to read the contents
|
117
|
-
/// of the matched path. In other words, each item returned by the iterator
|
118
|
-
/// will either be an `Ok(Path)` if the path matched, or an `Err(GlobError)` if
|
119
|
-
/// the path (partially) matched _but_ its contents could not be read in order
|
120
|
-
/// to determine if its contents matched.
|
121
|
-
///
|
122
|
-
/// See the `Paths` documentation for more information.
|
123
|
-
///
|
124
|
-
/// # Examples
|
125
|
-
///
|
126
|
-
/// Consider a directory `/media/pictures` containing only the files
|
127
|
-
/// `kittens.jpg`, `puppies.jpg` and `hamsters.gif`:
|
128
|
-
///
|
129
|
-
/// ```rust,no_run
|
130
|
-
/// use glob::glob;
|
131
|
-
///
|
132
|
-
/// for entry in glob("/media/pictures/*.jpg").unwrap() {
|
133
|
-
/// match entry {
|
134
|
-
/// Ok(path) => println!("{:?}", path.display()),
|
135
|
-
///
|
136
|
-
/// // if the path matched but was unreadable,
|
137
|
-
/// // thereby preventing its contents from matching
|
138
|
-
/// Err(e) => println!("{:?}", e),
|
139
|
-
/// }
|
140
|
-
/// }
|
141
|
-
/// ```
|
142
|
-
///
|
143
|
-
/// The above code will print:
|
144
|
-
///
|
145
|
-
/// ```ignore
|
146
|
-
/// /media/pictures/kittens.jpg
|
147
|
-
/// /media/pictures/puppies.jpg
|
148
|
-
/// ```
|
149
|
-
///
|
150
|
-
/// If you want to ignore unreadable paths, you can use something like
|
151
|
-
/// `filter_map`:
|
152
|
-
///
|
153
|
-
/// ```rust
|
154
|
-
/// use glob::glob;
|
155
|
-
/// use std::result::Result;
|
156
|
-
///
|
157
|
-
/// for path in glob("/media/pictures/*.jpg").unwrap().filter_map(Result::ok) {
|
158
|
-
/// println!("{}", path.display());
|
159
|
-
/// }
|
160
|
-
/// ```
|
161
|
-
/// Paths are yielded in alphabetical order.
|
162
|
-
pub fn glob(pattern: &str) -> Result<Paths, PatternError> {
|
163
|
-
glob_with(pattern, MatchOptions::new())
|
164
|
-
}
|
165
|
-
|
166
|
-
/// Return an iterator that produces all the `Path`s that match the given
|
167
|
-
/// pattern using the specified match options, which may be absolute or relative
|
168
|
-
/// to the current working directory.
|
169
|
-
///
|
170
|
-
/// This may return an error if the pattern is invalid.
|
171
|
-
///
|
172
|
-
/// This function accepts Unix shell style patterns as described by
|
173
|
-
/// `Pattern::new(..)`. The options given are passed through unchanged to
|
174
|
-
/// `Pattern::matches_with(..)` with the exception that
|
175
|
-
/// `require_literal_separator` is always set to `true` regardless of the value
|
176
|
-
/// passed to this function.
|
177
|
-
///
|
178
|
-
/// Paths are yielded in alphabetical order.
|
179
|
-
pub fn glob_with(pattern: &str, options: MatchOptions) -> Result<Paths, PatternError> {
|
180
|
-
#[cfg(windows)]
|
181
|
-
fn check_windows_verbatim(p: &Path) -> bool {
|
182
|
-
match p.components().next() {
|
183
|
-
Some(Component::Prefix(ref p)) => {
|
184
|
-
// Allow VerbatimDisk paths. std canonicalize() generates them, and they work fine
|
185
|
-
p.kind().is_verbatim()
|
186
|
-
&& if let std::path::Prefix::VerbatimDisk(_) = p.kind() {
|
187
|
-
false
|
188
|
-
} else {
|
189
|
-
true
|
190
|
-
}
|
191
|
-
}
|
192
|
-
_ => false,
|
193
|
-
}
|
194
|
-
}
|
195
|
-
#[cfg(not(windows))]
|
196
|
-
fn check_windows_verbatim(_: &Path) -> bool {
|
197
|
-
false
|
198
|
-
}
|
199
|
-
|
200
|
-
#[cfg(windows)]
|
201
|
-
fn to_scope(p: &Path) -> PathBuf {
|
202
|
-
// FIXME handle volume relative paths here
|
203
|
-
p.to_path_buf()
|
204
|
-
}
|
205
|
-
#[cfg(not(windows))]
|
206
|
-
fn to_scope(p: &Path) -> PathBuf {
|
207
|
-
p.to_path_buf()
|
208
|
-
}
|
209
|
-
|
210
|
-
// make sure that the pattern is valid first, else early return with error
|
211
|
-
if let Err(err) = Pattern::new(pattern) {
|
212
|
-
return Err(err);
|
213
|
-
}
|
214
|
-
|
215
|
-
let mut components = Path::new(pattern).components().peekable();
|
216
|
-
loop {
|
217
|
-
match components.peek() {
|
218
|
-
Some(&Component::Prefix(..)) | Some(&Component::RootDir) => {
|
219
|
-
components.next();
|
220
|
-
}
|
221
|
-
_ => break,
|
222
|
-
}
|
223
|
-
}
|
224
|
-
let rest = components.map(|s| s.as_os_str()).collect::<PathBuf>();
|
225
|
-
let normalized_pattern = Path::new(pattern).iter().collect::<PathBuf>();
|
226
|
-
let root_len = normalized_pattern.to_str().unwrap().len() - rest.to_str().unwrap().len();
|
227
|
-
let root = if root_len > 0 {
|
228
|
-
Some(Path::new(&pattern[..root_len]))
|
229
|
-
} else {
|
230
|
-
None
|
231
|
-
};
|
232
|
-
|
233
|
-
if root_len > 0 && check_windows_verbatim(root.unwrap()) {
|
234
|
-
// FIXME: How do we want to handle verbatim paths? I'm inclined to
|
235
|
-
// return nothing, since we can't very well find all UNC shares with a
|
236
|
-
// 1-letter server name.
|
237
|
-
return Ok(Paths {
|
238
|
-
dir_patterns: Vec::new(),
|
239
|
-
require_dir: false,
|
240
|
-
options,
|
241
|
-
todo: Vec::new(),
|
242
|
-
scope: None,
|
243
|
-
});
|
244
|
-
}
|
245
|
-
|
246
|
-
let scope = root.map_or_else(|| PathBuf::from("."), to_scope);
|
247
|
-
let scope = PathWrapper::from_path(scope);
|
248
|
-
|
249
|
-
let mut dir_patterns = Vec::new();
|
250
|
-
let components =
|
251
|
-
pattern[cmp::min(root_len, pattern.len())..].split_terminator(path::is_separator);
|
252
|
-
|
253
|
-
for component in components {
|
254
|
-
dir_patterns.push(Pattern::new(component)?);
|
255
|
-
}
|
256
|
-
|
257
|
-
if root_len == pattern.len() {
|
258
|
-
dir_patterns.push(Pattern {
|
259
|
-
original: "".to_string(),
|
260
|
-
tokens: Vec::new(),
|
261
|
-
is_recursive: false,
|
262
|
-
});
|
263
|
-
}
|
264
|
-
|
265
|
-
let last_is_separator = pattern.chars().next_back().map(path::is_separator);
|
266
|
-
let require_dir = last_is_separator == Some(true);
|
267
|
-
let todo = Vec::new();
|
268
|
-
|
269
|
-
Ok(Paths {
|
270
|
-
dir_patterns,
|
271
|
-
require_dir,
|
272
|
-
options,
|
273
|
-
todo,
|
274
|
-
scope: Some(scope),
|
275
|
-
})
|
276
|
-
}
|
277
|
-
|
278
|
-
/// A glob iteration error.
|
279
|
-
///
|
280
|
-
/// This is typically returned when a particular path cannot be read
|
281
|
-
/// to determine if its contents match the glob pattern. This is possible
|
282
|
-
/// if the program lacks the appropriate permissions, for example.
|
283
|
-
#[derive(Debug)]
|
284
|
-
pub struct GlobError {
|
285
|
-
path: PathBuf,
|
286
|
-
error: io::Error,
|
287
|
-
}
|
288
|
-
|
289
|
-
impl GlobError {
|
290
|
-
/// The Path that the error corresponds to.
|
291
|
-
pub fn path(&self) -> &Path {
|
292
|
-
&self.path
|
293
|
-
}
|
294
|
-
|
295
|
-
/// The error in question.
|
296
|
-
pub fn error(&self) -> &io::Error {
|
297
|
-
&self.error
|
298
|
-
}
|
299
|
-
|
300
|
-
/// Consumes self, returning the _raw_ underlying `io::Error`
|
301
|
-
pub fn into_error(self) -> io::Error {
|
302
|
-
self.error
|
303
|
-
}
|
304
|
-
}
|
305
|
-
|
306
|
-
impl Error for GlobError {
|
307
|
-
#[allow(deprecated)]
|
308
|
-
fn description(&self) -> &str {
|
309
|
-
self.error.description()
|
310
|
-
}
|
311
|
-
|
312
|
-
#[allow(unknown_lints, bare_trait_objects)]
|
313
|
-
fn cause(&self) -> Option<&Error> {
|
314
|
-
Some(&self.error)
|
315
|
-
}
|
316
|
-
}
|
317
|
-
|
318
|
-
impl fmt::Display for GlobError {
|
319
|
-
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
320
|
-
write!(
|
321
|
-
f,
|
322
|
-
"attempting to read `{}` resulted in an error: {}",
|
323
|
-
self.path.display(),
|
324
|
-
self.error
|
325
|
-
)
|
326
|
-
}
|
327
|
-
}
|
328
|
-
|
329
|
-
#[derive(Debug)]
|
330
|
-
struct PathWrapper {
|
331
|
-
path: PathBuf,
|
332
|
-
is_directory: bool,
|
333
|
-
}
|
334
|
-
|
335
|
-
impl PathWrapper {
|
336
|
-
fn from_dir_entry(path: PathBuf, e: DirEntry) -> Self {
|
337
|
-
let is_directory = e
|
338
|
-
.file_type()
|
339
|
-
.ok()
|
340
|
-
.and_then(|file_type| {
|
341
|
-
// We need to use fs::metadata to resolve the actual path
|
342
|
-
// if it's a symlink.
|
343
|
-
if file_type.is_symlink() {
|
344
|
-
None
|
345
|
-
} else {
|
346
|
-
Some(file_type.is_dir())
|
347
|
-
}
|
348
|
-
})
|
349
|
-
.or_else(|| fs::metadata(&path).map(|m| m.is_dir()).ok())
|
350
|
-
.unwrap_or(false);
|
351
|
-
Self { path, is_directory }
|
352
|
-
}
|
353
|
-
fn from_path(path: PathBuf) -> Self {
|
354
|
-
let is_directory = fs::metadata(&path).map(|m| m.is_dir()).unwrap_or(false);
|
355
|
-
Self { path, is_directory }
|
356
|
-
}
|
357
|
-
|
358
|
-
fn into_path(self) -> PathBuf {
|
359
|
-
self.path
|
360
|
-
}
|
361
|
-
}
|
362
|
-
|
363
|
-
impl Deref for PathWrapper {
|
364
|
-
type Target = Path;
|
365
|
-
|
366
|
-
fn deref(&self) -> &Self::Target {
|
367
|
-
self.path.deref()
|
368
|
-
}
|
369
|
-
}
|
370
|
-
|
371
|
-
impl AsRef<Path> for PathWrapper {
|
372
|
-
fn as_ref(&self) -> &Path {
|
373
|
-
self.path.as_ref()
|
374
|
-
}
|
375
|
-
}
|
376
|
-
|
377
|
-
/// An alias for a glob iteration result.
|
378
|
-
///
|
379
|
-
/// This represents either a matched path or a glob iteration error,
|
380
|
-
/// such as failing to read a particular directory's contents.
|
381
|
-
pub type GlobResult = Result<PathBuf, GlobError>;
|
382
|
-
|
383
|
-
impl Iterator for Paths {
|
384
|
-
type Item = GlobResult;
|
385
|
-
|
386
|
-
fn next(&mut self) -> Option<GlobResult> {
|
387
|
-
// the todo buffer hasn't been initialized yet, so it's done at this
|
388
|
-
// point rather than in glob() so that the errors are unified that is,
|
389
|
-
// failing to fill the buffer is an iteration error construction of the
|
390
|
-
// iterator (i.e. glob()) only fails if it fails to compile the Pattern
|
391
|
-
if let Some(scope) = self.scope.take() {
|
392
|
-
if !self.dir_patterns.is_empty() {
|
393
|
-
// Shouldn't happen, but we're using -1 as a special index.
|
394
|
-
assert!(self.dir_patterns.len() < !0 as usize);
|
395
|
-
|
396
|
-
fill_todo(&mut self.todo, &self.dir_patterns, 0, &scope, self.options);
|
397
|
-
}
|
398
|
-
}
|
399
|
-
|
400
|
-
loop {
|
401
|
-
if self.dir_patterns.is_empty() || self.todo.is_empty() {
|
402
|
-
return None;
|
403
|
-
}
|
404
|
-
|
405
|
-
let (path, mut idx) = match self.todo.pop().unwrap() {
|
406
|
-
Ok(pair) => pair,
|
407
|
-
Err(e) => return Some(Err(e)),
|
408
|
-
};
|
409
|
-
|
410
|
-
// idx -1: was already checked by fill_todo, maybe path was '.' or
|
411
|
-
// '..' that we can't match here because of normalization.
|
412
|
-
if idx == !0 as usize {
|
413
|
-
if self.require_dir && !path.is_directory {
|
414
|
-
continue;
|
415
|
-
}
|
416
|
-
return Some(Ok(path.into_path()));
|
417
|
-
}
|
418
|
-
|
419
|
-
if self.dir_patterns[idx].is_recursive {
|
420
|
-
let mut next = idx;
|
421
|
-
|
422
|
-
// collapse consecutive recursive patterns
|
423
|
-
while (next + 1) < self.dir_patterns.len()
|
424
|
-
&& self.dir_patterns[next + 1].is_recursive
|
425
|
-
{
|
426
|
-
next += 1;
|
427
|
-
}
|
428
|
-
|
429
|
-
if path.is_directory {
|
430
|
-
// the path is a directory, so it's a match
|
431
|
-
|
432
|
-
// push this directory's contents
|
433
|
-
fill_todo(
|
434
|
-
&mut self.todo,
|
435
|
-
&self.dir_patterns,
|
436
|
-
next,
|
437
|
-
&path,
|
438
|
-
self.options,
|
439
|
-
);
|
440
|
-
|
441
|
-
if next == self.dir_patterns.len() - 1 {
|
442
|
-
// pattern ends in recursive pattern, so return this
|
443
|
-
// directory as a result
|
444
|
-
return Some(Ok(path.into_path()));
|
445
|
-
} else {
|
446
|
-
// advanced to the next pattern for this path
|
447
|
-
idx = next + 1;
|
448
|
-
}
|
449
|
-
} else if next == self.dir_patterns.len() - 1 {
|
450
|
-
// not a directory and it's the last pattern, meaning no
|
451
|
-
// match
|
452
|
-
continue;
|
453
|
-
} else {
|
454
|
-
// advanced to the next pattern for this path
|
455
|
-
idx = next + 1;
|
456
|
-
}
|
457
|
-
}
|
458
|
-
|
459
|
-
// not recursive, so match normally
|
460
|
-
if self.dir_patterns[idx].matches_with(
|
461
|
-
{
|
462
|
-
match path.file_name().and_then(|s| s.to_str()) {
|
463
|
-
// FIXME (#9639): How do we handle non-utf8 filenames?
|
464
|
-
// Ignore them for now; ideally we'd still match them
|
465
|
-
// against a *
|
466
|
-
None => continue,
|
467
|
-
Some(x) => x,
|
468
|
-
}
|
469
|
-
},
|
470
|
-
self.options,
|
471
|
-
) {
|
472
|
-
if idx == self.dir_patterns.len() - 1 {
|
473
|
-
// it is not possible for a pattern to match a directory
|
474
|
-
// *AND* its children so we don't need to check the
|
475
|
-
// children
|
476
|
-
|
477
|
-
if !self.require_dir || path.is_directory {
|
478
|
-
return Some(Ok(path.into_path()));
|
479
|
-
}
|
480
|
-
} else {
|
481
|
-
fill_todo(
|
482
|
-
&mut self.todo,
|
483
|
-
&self.dir_patterns,
|
484
|
-
idx + 1,
|
485
|
-
&path,
|
486
|
-
self.options,
|
487
|
-
);
|
488
|
-
}
|
489
|
-
}
|
490
|
-
}
|
491
|
-
}
|
492
|
-
}
|
493
|
-
|
494
|
-
/// A pattern parsing error.
|
495
|
-
#[derive(Debug)]
|
496
|
-
#[allow(missing_copy_implementations)]
|
497
|
-
pub struct PatternError {
|
498
|
-
/// The approximate character index of where the error occurred.
|
499
|
-
pub pos: usize,
|
500
|
-
|
501
|
-
/// A message describing the error.
|
502
|
-
pub msg: &'static str,
|
503
|
-
}
|
504
|
-
|
505
|
-
impl Error for PatternError {
|
506
|
-
fn description(&self) -> &str {
|
507
|
-
self.msg
|
508
|
-
}
|
509
|
-
}
|
510
|
-
|
511
|
-
impl fmt::Display for PatternError {
|
512
|
-
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
513
|
-
write!(
|
514
|
-
f,
|
515
|
-
"Pattern syntax error near position {}: {}",
|
516
|
-
self.pos, self.msg
|
517
|
-
)
|
518
|
-
}
|
519
|
-
}
|
520
|
-
|
521
|
-
/// A compiled Unix shell style pattern.
|
522
|
-
///
|
523
|
-
/// - `?` matches any single character.
|
524
|
-
///
|
525
|
-
/// - `*` matches any (possibly empty) sequence of characters.
|
526
|
-
///
|
527
|
-
/// - `**` matches the current directory and arbitrary
|
528
|
-
/// subdirectories. To match files in arbitrary subdiretories, use
|
529
|
-
/// `**/*`.
|
530
|
-
///
|
531
|
-
/// This sequence **must** form a single path component, so both
|
532
|
-
/// `**a` and `b**` are invalid and will result in an error. A
|
533
|
-
/// sequence of more than two consecutive `*` characters is also
|
534
|
-
/// invalid.
|
535
|
-
///
|
536
|
-
/// - `[...]` matches any character inside the brackets. Character sequences
|
537
|
-
/// can also specify ranges of characters, as ordered by Unicode, so e.g.
|
538
|
-
/// `[0-9]` specifies any character between 0 and 9 inclusive. An unclosed
|
539
|
-
/// bracket is invalid.
|
540
|
-
///
|
541
|
-
/// - `[!...]` is the negation of `[...]`, i.e. it matches any characters
|
542
|
-
/// **not** in the brackets.
|
543
|
-
///
|
544
|
-
/// - The metacharacters `?`, `*`, `[`, `]` can be matched by using brackets
|
545
|
-
/// (e.g. `[?]`). When a `]` occurs immediately following `[` or `[!` then it
|
546
|
-
/// is interpreted as being part of, rather then ending, the character set, so
|
547
|
-
/// `]` and NOT `]` can be matched by `[]]` and `[!]]` respectively. The `-`
|
548
|
-
/// character can be specified inside a character sequence pattern by placing
|
549
|
-
/// it at the start or the end, e.g. `[abc-]`.
|
550
|
-
#[derive(Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default, Debug)]
|
551
|
-
pub struct Pattern {
|
552
|
-
original: String,
|
553
|
-
tokens: Vec<PatternToken>,
|
554
|
-
is_recursive: bool,
|
555
|
-
}
|
556
|
-
|
557
|
-
/// Show the original glob pattern.
|
558
|
-
impl fmt::Display for Pattern {
|
559
|
-
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
560
|
-
self.original.fmt(f)
|
561
|
-
}
|
562
|
-
}
|
563
|
-
|
564
|
-
impl FromStr for Pattern {
|
565
|
-
type Err = PatternError;
|
566
|
-
|
567
|
-
fn from_str(s: &str) -> Result<Self, PatternError> {
|
568
|
-
Self::new(s)
|
569
|
-
}
|
570
|
-
}
|
571
|
-
|
572
|
-
#[derive(Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Debug)]
|
573
|
-
enum PatternToken {
|
574
|
-
Char(char),
|
575
|
-
AnyChar,
|
576
|
-
AnySequence,
|
577
|
-
AnyRecursiveSequence,
|
578
|
-
AnyWithin(Vec<CharSpecifier>),
|
579
|
-
AnyExcept(Vec<CharSpecifier>),
|
580
|
-
}
|
581
|
-
|
582
|
-
#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Debug)]
|
583
|
-
enum CharSpecifier {
|
584
|
-
SingleChar(char),
|
585
|
-
CharRange(char, char),
|
586
|
-
}
|
587
|
-
|
588
|
-
#[derive(Copy, Clone, PartialEq)]
|
589
|
-
enum MatchResult {
|
590
|
-
Match,
|
591
|
-
SubPatternDoesntMatch,
|
592
|
-
EntirePatternDoesntMatch,
|
593
|
-
}
|
594
|
-
|
595
|
-
const ERROR_WILDCARDS: &str = "wildcards are either regular `*` or recursive `**`";
|
596
|
-
const ERROR_RECURSIVE_WILDCARDS: &str = "recursive wildcards must form a single path \
|
597
|
-
component";
|
598
|
-
const ERROR_INVALID_RANGE: &str = "invalid range pattern";
|
599
|
-
|
600
|
-
impl Pattern {
|
601
|
-
/// This function compiles Unix shell style patterns.
|
602
|
-
///
|
603
|
-
/// An invalid glob pattern will yield a `PatternError`.
|
604
|
-
pub fn new(pattern: &str) -> Result<Self, PatternError> {
|
605
|
-
let chars = pattern.chars().collect::<Vec<_>>();
|
606
|
-
let mut tokens = Vec::new();
|
607
|
-
let mut is_recursive = false;
|
608
|
-
let mut i = 0;
|
609
|
-
|
610
|
-
while i < chars.len() {
|
611
|
-
match chars[i] {
|
612
|
-
'?' => {
|
613
|
-
tokens.push(AnyChar);
|
614
|
-
i += 1;
|
615
|
-
}
|
616
|
-
'*' => {
|
617
|
-
let old = i;
|
618
|
-
|
619
|
-
while i < chars.len() && chars[i] == '*' {
|
620
|
-
i += 1;
|
621
|
-
}
|
622
|
-
|
623
|
-
let count = i - old;
|
624
|
-
|
625
|
-
if count > 2 {
|
626
|
-
return Err(PatternError {
|
627
|
-
pos: old + 2,
|
628
|
-
msg: ERROR_WILDCARDS,
|
629
|
-
});
|
630
|
-
} else if count == 2 {
|
631
|
-
// ** can only be an entire path component
|
632
|
-
// i.e. a/**/b is valid, but a**/b or a/**b is not
|
633
|
-
// invalid matches are treated literally
|
634
|
-
let is_valid = if i == 2 || path::is_separator(chars[i - count - 1]) {
|
635
|
-
// it ends in a '/'
|
636
|
-
if i < chars.len() && path::is_separator(chars[i]) {
|
637
|
-
i += 1;
|
638
|
-
true
|
639
|
-
// or the pattern ends here
|
640
|
-
// this enables the existing globbing mechanism
|
641
|
-
} else if i == chars.len() {
|
642
|
-
true
|
643
|
-
// `**` ends in non-separator
|
644
|
-
} else {
|
645
|
-
return Err(PatternError {
|
646
|
-
pos: i,
|
647
|
-
msg: ERROR_RECURSIVE_WILDCARDS,
|
648
|
-
});
|
649
|
-
}
|
650
|
-
// `**` begins with non-separator
|
651
|
-
} else {
|
652
|
-
return Err(PatternError {
|
653
|
-
pos: old - 1,
|
654
|
-
msg: ERROR_RECURSIVE_WILDCARDS,
|
655
|
-
});
|
656
|
-
};
|
657
|
-
|
658
|
-
if is_valid {
|
659
|
-
// collapse consecutive AnyRecursiveSequence to a
|
660
|
-
// single one
|
661
|
-
|
662
|
-
let tokens_len = tokens.len();
|
663
|
-
|
664
|
-
if !(tokens_len > 1 && tokens[tokens_len - 1] == AnyRecursiveSequence) {
|
665
|
-
is_recursive = true;
|
666
|
-
tokens.push(AnyRecursiveSequence);
|
667
|
-
}
|
668
|
-
}
|
669
|
-
} else {
|
670
|
-
tokens.push(AnySequence);
|
671
|
-
}
|
672
|
-
}
|
673
|
-
'[' => {
|
674
|
-
if i + 4 <= chars.len() && chars[i + 1] == '!' {
|
675
|
-
match chars[i + 3..].iter().position(|x| *x == ']') {
|
676
|
-
None => (),
|
677
|
-
Some(j) => {
|
678
|
-
let chars = &chars[i + 2..i + 3 + j];
|
679
|
-
let cs = parse_char_specifiers(chars);
|
680
|
-
tokens.push(AnyExcept(cs));
|
681
|
-
i += j + 4;
|
682
|
-
continue;
|
683
|
-
}
|
684
|
-
}
|
685
|
-
} else if i + 3 <= chars.len() && chars[i + 1] != '!' {
|
686
|
-
match chars[i + 2..].iter().position(|x| *x == ']') {
|
687
|
-
None => (),
|
688
|
-
Some(j) => {
|
689
|
-
let cs = parse_char_specifiers(&chars[i + 1..i + 2 + j]);
|
690
|
-
tokens.push(AnyWithin(cs));
|
691
|
-
i += j + 3;
|
692
|
-
continue;
|
693
|
-
}
|
694
|
-
}
|
695
|
-
}
|
696
|
-
|
697
|
-
// if we get here then this is not a valid range pattern
|
698
|
-
return Err(PatternError {
|
699
|
-
pos: i,
|
700
|
-
msg: ERROR_INVALID_RANGE,
|
701
|
-
});
|
702
|
-
}
|
703
|
-
c => {
|
704
|
-
tokens.push(Char(c));
|
705
|
-
i += 1;
|
706
|
-
}
|
707
|
-
}
|
708
|
-
}
|
709
|
-
|
710
|
-
Ok(Self {
|
711
|
-
tokens,
|
712
|
-
original: pattern.to_string(),
|
713
|
-
is_recursive,
|
714
|
-
})
|
715
|
-
}
|
716
|
-
|
717
|
-
/// Escape metacharacters within the given string by surrounding them in
|
718
|
-
/// brackets. The resulting string will, when compiled into a `Pattern`,
|
719
|
-
/// match the input string and nothing else.
|
720
|
-
pub fn escape(s: &str) -> String {
|
721
|
-
let mut escaped = String::new();
|
722
|
-
for c in s.chars() {
|
723
|
-
match c {
|
724
|
-
// note that ! does not need escaping because it is only special
|
725
|
-
// inside brackets
|
726
|
-
'?' | '*' | '[' | ']' => {
|
727
|
-
escaped.push('[');
|
728
|
-
escaped.push(c);
|
729
|
-
escaped.push(']');
|
730
|
-
}
|
731
|
-
c => {
|
732
|
-
escaped.push(c);
|
733
|
-
}
|
734
|
-
}
|
735
|
-
}
|
736
|
-
escaped
|
737
|
-
}
|
738
|
-
|
739
|
-
/// Return if the given `str` matches this `Pattern` using the default
|
740
|
-
/// match options (i.e. `MatchOptions::new()`).
|
741
|
-
///
|
742
|
-
/// # Examples
|
743
|
-
///
|
744
|
-
/// ```rust
|
745
|
-
/// use glob::Pattern;
|
746
|
-
///
|
747
|
-
/// assert!(Pattern::new("c?t").unwrap().matches("cat"));
|
748
|
-
/// assert!(Pattern::new("k[!e]tteh").unwrap().matches("kitteh"));
|
749
|
-
/// assert!(Pattern::new("d*g").unwrap().matches("doog"));
|
750
|
-
/// ```
|
751
|
-
pub fn matches(&self, str: &str) -> bool {
|
752
|
-
self.matches_with(str, MatchOptions::new())
|
753
|
-
}
|
754
|
-
|
755
|
-
/// Return if the given `Path`, when converted to a `str`, matches this
|
756
|
-
/// `Pattern` using the default match options (i.e. `MatchOptions::new()`).
|
757
|
-
pub fn matches_path(&self, path: &Path) -> bool {
|
758
|
-
// FIXME (#9639): This needs to handle non-utf8 paths
|
759
|
-
path.to_str().map_or(false, |s| self.matches(s))
|
760
|
-
}
|
761
|
-
|
762
|
-
/// Return if the given `str` matches this `Pattern` using the specified
|
763
|
-
/// match options.
|
764
|
-
pub fn matches_with(&self, str: &str, options: MatchOptions) -> bool {
|
765
|
-
self.matches_from(true, str.chars(), 0, options) == Match
|
766
|
-
}
|
767
|
-
|
768
|
-
/// Return if the given `Path`, when converted to a `str`, matches this
|
769
|
-
/// `Pattern` using the specified match options.
|
770
|
-
pub fn matches_path_with(&self, path: &Path, options: MatchOptions) -> bool {
|
771
|
-
// FIXME (#9639): This needs to handle non-utf8 paths
|
772
|
-
path.to_str()
|
773
|
-
.map_or(false, |s| self.matches_with(s, options))
|
774
|
-
}
|
775
|
-
|
776
|
-
/// Access the original glob pattern.
|
777
|
-
pub fn as_str(&self) -> &str {
|
778
|
-
&self.original
|
779
|
-
}
|
780
|
-
|
781
|
-
fn matches_from(
|
782
|
-
&self,
|
783
|
-
mut follows_separator: bool,
|
784
|
-
mut file: std::str::Chars,
|
785
|
-
i: usize,
|
786
|
-
options: MatchOptions,
|
787
|
-
) -> MatchResult {
|
788
|
-
for (ti, token) in self.tokens[i..].iter().enumerate() {
|
789
|
-
match *token {
|
790
|
-
AnySequence | AnyRecursiveSequence => {
|
791
|
-
// ** must be at the start.
|
792
|
-
debug_assert!(match *token {
|
793
|
-
AnyRecursiveSequence => follows_separator,
|
794
|
-
_ => true,
|
795
|
-
});
|
796
|
-
|
797
|
-
// Empty match
|
798
|
-
match self.matches_from(follows_separator, file.clone(), i + ti + 1, options) {
|
799
|
-
SubPatternDoesntMatch => (), // keep trying
|
800
|
-
m => return m,
|
801
|
-
};
|
802
|
-
|
803
|
-
while let Some(c) = file.next() {
|
804
|
-
if follows_separator && options.require_literal_leading_dot && c == '.' {
|
805
|
-
return SubPatternDoesntMatch;
|
806
|
-
}
|
807
|
-
follows_separator = path::is_separator(c);
|
808
|
-
match *token {
|
809
|
-
AnyRecursiveSequence if !follows_separator => continue,
|
810
|
-
AnySequence
|
811
|
-
if options.require_literal_separator && follows_separator =>
|
812
|
-
{
|
813
|
-
return SubPatternDoesntMatch
|
814
|
-
}
|
815
|
-
_ => (),
|
816
|
-
}
|
817
|
-
match self.matches_from(
|
818
|
-
follows_separator,
|
819
|
-
file.clone(),
|
820
|
-
i + ti + 1,
|
821
|
-
options,
|
822
|
-
) {
|
823
|
-
SubPatternDoesntMatch => (), // keep trying
|
824
|
-
m => return m,
|
825
|
-
}
|
826
|
-
}
|
827
|
-
}
|
828
|
-
_ => {
|
829
|
-
let c = match file.next() {
|
830
|
-
Some(c) => c,
|
831
|
-
None => return EntirePatternDoesntMatch,
|
832
|
-
};
|
833
|
-
|
834
|
-
let is_sep = path::is_separator(c);
|
835
|
-
|
836
|
-
if !match *token {
|
837
|
-
AnyChar | AnyWithin(..) | AnyExcept(..)
|
838
|
-
if (options.require_literal_separator && is_sep)
|
839
|
-
|| (follows_separator
|
840
|
-
&& options.require_literal_leading_dot
|
841
|
-
&& c == '.') =>
|
842
|
-
{
|
843
|
-
false
|
844
|
-
}
|
845
|
-
AnyChar => true,
|
846
|
-
AnyWithin(ref specifiers) => in_char_specifiers(&specifiers, c, options),
|
847
|
-
AnyExcept(ref specifiers) => !in_char_specifiers(&specifiers, c, options),
|
848
|
-
Char(c2) => chars_eq(c, c2, options.case_sensitive),
|
849
|
-
AnySequence | AnyRecursiveSequence => unreachable!(),
|
850
|
-
} {
|
851
|
-
return SubPatternDoesntMatch;
|
852
|
-
}
|
853
|
-
follows_separator = is_sep;
|
854
|
-
}
|
855
|
-
}
|
856
|
-
}
|
857
|
-
|
858
|
-
// Iter is fused.
|
859
|
-
if file.next().is_none() {
|
860
|
-
Match
|
861
|
-
} else {
|
862
|
-
SubPatternDoesntMatch
|
863
|
-
}
|
864
|
-
}
|
865
|
-
}
|
866
|
-
|
867
|
-
// Fills `todo` with paths under `path` to be matched by `patterns[idx]`,
|
868
|
-
// special-casing patterns to match `.` and `..`, and avoiding `readdir()`
|
869
|
-
// calls when there are no metacharacters in the pattern.
|
870
|
-
fn fill_todo(
|
871
|
-
todo: &mut Vec<Result<(PathWrapper, usize), GlobError>>,
|
872
|
-
patterns: &[Pattern],
|
873
|
-
idx: usize,
|
874
|
-
path: &PathWrapper,
|
875
|
-
options: MatchOptions,
|
876
|
-
) {
|
877
|
-
// convert a pattern that's just many Char(_) to a string
|
878
|
-
fn pattern_as_str(pattern: &Pattern) -> Option<String> {
|
879
|
-
let mut s = String::new();
|
880
|
-
for token in &pattern.tokens {
|
881
|
-
match *token {
|
882
|
-
Char(c) => s.push(c),
|
883
|
-
_ => return None,
|
884
|
-
}
|
885
|
-
}
|
886
|
-
|
887
|
-
Some(s)
|
888
|
-
}
|
889
|
-
|
890
|
-
let add = |todo: &mut Vec<_>, next_path: PathWrapper| {
|
891
|
-
if idx + 1 == patterns.len() {
|
892
|
-
// We know it's good, so don't make the iterator match this path
|
893
|
-
// against the pattern again. In particular, it can't match
|
894
|
-
// . or .. globs since these never show up as path components.
|
895
|
-
todo.push(Ok((next_path, !0 as usize)));
|
896
|
-
} else {
|
897
|
-
fill_todo(todo, patterns, idx + 1, &next_path, options);
|
898
|
-
}
|
899
|
-
};
|
900
|
-
|
901
|
-
let pattern = &patterns[idx];
|
902
|
-
let is_dir = path.is_directory;
|
903
|
-
let curdir = path.as_ref() == Path::new(".");
|
904
|
-
match pattern_as_str(pattern) {
|
905
|
-
Some(s) => {
|
906
|
-
// This pattern component doesn't have any metacharacters, so we
|
907
|
-
// don't need to read the current directory to know where to
|
908
|
-
// continue. So instead of passing control back to the iterator,
|
909
|
-
// we can just check for that one entry and potentially recurse
|
910
|
-
// right away.
|
911
|
-
let special = "." == s || ".." == s;
|
912
|
-
let next_path = if curdir {
|
913
|
-
PathBuf::from(s)
|
914
|
-
} else {
|
915
|
-
path.join(&s)
|
916
|
-
};
|
917
|
-
let next_path = PathWrapper::from_path(next_path);
|
918
|
-
if (special && is_dir)
|
919
|
-
|| (!special
|
920
|
-
&& (fs::metadata(&next_path).is_ok()
|
921
|
-
|| fs::symlink_metadata(&next_path).is_ok()))
|
922
|
-
{
|
923
|
-
add(todo, next_path);
|
924
|
-
}
|
925
|
-
}
|
926
|
-
None if is_dir => {
|
927
|
-
let dirs = fs::read_dir(path).and_then(|d| {
|
928
|
-
d.map(|e| {
|
929
|
-
e.map(|e| {
|
930
|
-
let path = if curdir {
|
931
|
-
PathBuf::from(e.path().file_name().unwrap())
|
932
|
-
} else {
|
933
|
-
e.path()
|
934
|
-
};
|
935
|
-
PathWrapper::from_dir_entry(path, e)
|
936
|
-
})
|
937
|
-
})
|
938
|
-
.collect::<Result<Vec<_>, _>>()
|
939
|
-
});
|
940
|
-
match dirs {
|
941
|
-
Ok(mut children) => {
|
942
|
-
if options.require_literal_leading_dot {
|
943
|
-
children
|
944
|
-
.retain(|x| !x.file_name().unwrap().to_str().unwrap().starts_with("."));
|
945
|
-
}
|
946
|
-
children.sort_by(|p1, p2| p2.file_name().cmp(&p1.file_name()));
|
947
|
-
todo.extend(children.into_iter().map(|x| Ok((x, idx))));
|
948
|
-
|
949
|
-
// Matching the special directory entries . and .. that
|
950
|
-
// refer to the current and parent directory respectively
|
951
|
-
// requires that the pattern has a leading dot, even if the
|
952
|
-
// `MatchOptions` field `require_literal_leading_dot` is not
|
953
|
-
// set.
|
954
|
-
if !pattern.tokens.is_empty() && pattern.tokens[0] == Char('.') {
|
955
|
-
for &special in &[".", ".."] {
|
956
|
-
if pattern.matches_with(special, options) {
|
957
|
-
add(todo, PathWrapper::from_path(path.join(special)));
|
958
|
-
}
|
959
|
-
}
|
960
|
-
}
|
961
|
-
}
|
962
|
-
Err(e) => {
|
963
|
-
todo.push(Err(GlobError {
|
964
|
-
path: path.to_path_buf(),
|
965
|
-
error: e,
|
966
|
-
}));
|
967
|
-
}
|
968
|
-
}
|
969
|
-
}
|
970
|
-
None => {
|
971
|
-
// not a directory, nothing more to find
|
972
|
-
}
|
973
|
-
}
|
974
|
-
}
|
975
|
-
|
976
|
-
fn parse_char_specifiers(s: &[char]) -> Vec<CharSpecifier> {
|
977
|
-
let mut cs = Vec::new();
|
978
|
-
let mut i = 0;
|
979
|
-
while i < s.len() {
|
980
|
-
if i + 3 <= s.len() && s[i + 1] == '-' {
|
981
|
-
cs.push(CharRange(s[i], s[i + 2]));
|
982
|
-
i += 3;
|
983
|
-
} else {
|
984
|
-
cs.push(SingleChar(s[i]));
|
985
|
-
i += 1;
|
986
|
-
}
|
987
|
-
}
|
988
|
-
cs
|
989
|
-
}
|
990
|
-
|
991
|
-
fn in_char_specifiers(specifiers: &[CharSpecifier], c: char, options: MatchOptions) -> bool {
|
992
|
-
for &specifier in specifiers.iter() {
|
993
|
-
match specifier {
|
994
|
-
SingleChar(sc) => {
|
995
|
-
if chars_eq(c, sc, options.case_sensitive) {
|
996
|
-
return true;
|
997
|
-
}
|
998
|
-
}
|
999
|
-
CharRange(start, end) => {
|
1000
|
-
// FIXME: work with non-ascii chars properly (issue #1347)
|
1001
|
-
if !options.case_sensitive && c.is_ascii() && start.is_ascii() && end.is_ascii() {
|
1002
|
-
let start = start.to_ascii_lowercase();
|
1003
|
-
let end = end.to_ascii_lowercase();
|
1004
|
-
|
1005
|
-
let start_up = start.to_uppercase().next().unwrap();
|
1006
|
-
let end_up = end.to_uppercase().next().unwrap();
|
1007
|
-
|
1008
|
-
// only allow case insensitive matching when
|
1009
|
-
// both start and end are within a-z or A-Z
|
1010
|
-
if start != start_up && end != end_up {
|
1011
|
-
let c = c.to_ascii_lowercase();
|
1012
|
-
if c >= start && c <= end {
|
1013
|
-
return true;
|
1014
|
-
}
|
1015
|
-
}
|
1016
|
-
}
|
1017
|
-
|
1018
|
-
if c >= start && c <= end {
|
1019
|
-
return true;
|
1020
|
-
}
|
1021
|
-
}
|
1022
|
-
}
|
1023
|
-
}
|
1024
|
-
|
1025
|
-
false
|
1026
|
-
}
|
1027
|
-
|
1028
|
-
/// A helper function to determine if two chars are (possibly case-insensitively) equal.
|
1029
|
-
fn chars_eq(a: char, b: char, case_sensitive: bool) -> bool {
|
1030
|
-
if cfg!(windows) && path::is_separator(a) && path::is_separator(b) {
|
1031
|
-
true
|
1032
|
-
} else if !case_sensitive && a.is_ascii() && b.is_ascii() {
|
1033
|
-
// FIXME: work with non-ascii chars properly (issue #9084)
|
1034
|
-
a.to_ascii_lowercase() == b.to_ascii_lowercase()
|
1035
|
-
} else {
|
1036
|
-
a == b
|
1037
|
-
}
|
1038
|
-
}
|
1039
|
-
|
1040
|
-
/// Configuration options to modify the behaviour of `Pattern::matches_with(..)`.
|
1041
|
-
#[allow(missing_copy_implementations)]
|
1042
|
-
#[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
|
1043
|
-
pub struct MatchOptions {
|
1044
|
-
/// Whether or not patterns should be matched in a case-sensitive manner.
|
1045
|
-
/// This currently only considers upper/lower case relationships between
|
1046
|
-
/// ASCII characters, but in future this might be extended to work with
|
1047
|
-
/// Unicode.
|
1048
|
-
pub case_sensitive: bool,
|
1049
|
-
|
1050
|
-
/// Whether or not path-component separator characters (e.g. `/` on
|
1051
|
-
/// Posix) must be matched by a literal `/`, rather than by `*` or `?` or
|
1052
|
-
/// `[...]`.
|
1053
|
-
pub require_literal_separator: bool,
|
1054
|
-
|
1055
|
-
/// Whether or not paths that contain components that start with a `.`
|
1056
|
-
/// will require that `.` appears literally in the pattern; `*`, `?`, `**`,
|
1057
|
-
/// or `[...]` will not match. This is useful because such files are
|
1058
|
-
/// conventionally considered hidden on Unix systems and it might be
|
1059
|
-
/// desirable to skip them when listing files.
|
1060
|
-
pub require_literal_leading_dot: bool,
|
1061
|
-
}
|
1062
|
-
|
1063
|
-
impl MatchOptions {
|
1064
|
-
/// Constructs a new `MatchOptions` with default field values. This is used
|
1065
|
-
/// when calling functions that do not take an explicit `MatchOptions`
|
1066
|
-
/// parameter.
|
1067
|
-
///
|
1068
|
-
/// This function always returns this value:
|
1069
|
-
///
|
1070
|
-
/// ```rust,ignore
|
1071
|
-
/// MatchOptions {
|
1072
|
-
/// case_sensitive: true,
|
1073
|
-
/// require_literal_separator: false,
|
1074
|
-
/// require_literal_leading_dot: false
|
1075
|
-
/// }
|
1076
|
-
/// ```
|
1077
|
-
///
|
1078
|
-
/// # Note
|
1079
|
-
/// The behavior of this method doesn't match `default()`'s. This returns
|
1080
|
-
/// `case_sensitive` as `true` while `default()` does it as `false`.
|
1081
|
-
// FIXME: Consider unity the behavior with `default()` in a next major release.
|
1082
|
-
pub fn new() -> Self {
|
1083
|
-
Self {
|
1084
|
-
case_sensitive: true,
|
1085
|
-
require_literal_separator: false,
|
1086
|
-
require_literal_leading_dot: false,
|
1087
|
-
}
|
1088
|
-
}
|
1089
|
-
}
|
1090
|
-
|
1091
|
-
#[cfg(test)]
|
1092
|
-
mod test {
|
1093
|
-
use super::{glob, MatchOptions, Pattern};
|
1094
|
-
use std::path::Path;
|
1095
|
-
|
1096
|
-
#[test]
|
1097
|
-
fn test_pattern_from_str() {
|
1098
|
-
assert!("a*b".parse::<Pattern>().unwrap().matches("a_b"));
|
1099
|
-
assert!("a/**b".parse::<Pattern>().unwrap_err().pos == 4);
|
1100
|
-
}
|
1101
|
-
|
1102
|
-
#[test]
|
1103
|
-
fn test_wildcard_errors() {
|
1104
|
-
assert!(Pattern::new("a/**b").unwrap_err().pos == 4);
|
1105
|
-
assert!(Pattern::new("a/bc**").unwrap_err().pos == 3);
|
1106
|
-
assert!(Pattern::new("a/*****").unwrap_err().pos == 4);
|
1107
|
-
assert!(Pattern::new("a/b**c**d").unwrap_err().pos == 2);
|
1108
|
-
assert!(Pattern::new("a**b").unwrap_err().pos == 0);
|
1109
|
-
}
|
1110
|
-
|
1111
|
-
#[test]
|
1112
|
-
fn test_unclosed_bracket_errors() {
|
1113
|
-
assert!(Pattern::new("abc[def").unwrap_err().pos == 3);
|
1114
|
-
assert!(Pattern::new("abc[!def").unwrap_err().pos == 3);
|
1115
|
-
assert!(Pattern::new("abc[").unwrap_err().pos == 3);
|
1116
|
-
assert!(Pattern::new("abc[!").unwrap_err().pos == 3);
|
1117
|
-
assert!(Pattern::new("abc[d").unwrap_err().pos == 3);
|
1118
|
-
assert!(Pattern::new("abc[!d").unwrap_err().pos == 3);
|
1119
|
-
assert!(Pattern::new("abc[]").unwrap_err().pos == 3);
|
1120
|
-
assert!(Pattern::new("abc[!]").unwrap_err().pos == 3);
|
1121
|
-
}
|
1122
|
-
|
1123
|
-
#[test]
|
1124
|
-
fn test_glob_errors() {
|
1125
|
-
assert!(glob("a/**b").err().unwrap().pos == 4);
|
1126
|
-
assert!(glob("abc[def").err().unwrap().pos == 3);
|
1127
|
-
}
|
1128
|
-
|
1129
|
-
// this test assumes that there is a /root directory and that
|
1130
|
-
// the user running this test is not root or otherwise doesn't
|
1131
|
-
// have permission to read its contents
|
1132
|
-
#[cfg(all(unix, not(target_os = "macos")))]
|
1133
|
-
#[test]
|
1134
|
-
fn test_iteration_errors() {
|
1135
|
-
use std::io;
|
1136
|
-
let mut iter = glob("/root/*").unwrap();
|
1137
|
-
|
1138
|
-
// GlobErrors shouldn't halt iteration
|
1139
|
-
let next = iter.next();
|
1140
|
-
assert!(next.is_some());
|
1141
|
-
|
1142
|
-
let err = next.unwrap();
|
1143
|
-
assert!(err.is_err());
|
1144
|
-
|
1145
|
-
let err = err.err().unwrap();
|
1146
|
-
assert!(err.path() == Path::new("/root"));
|
1147
|
-
assert!(err.error().kind() == io::ErrorKind::PermissionDenied);
|
1148
|
-
}
|
1149
|
-
|
1150
|
-
#[test]
|
1151
|
-
fn test_absolute_pattern() {
|
1152
|
-
assert!(glob("/").unwrap().next().is_some());
|
1153
|
-
assert!(glob("//").unwrap().next().is_some());
|
1154
|
-
|
1155
|
-
// assume that the filesystem is not empty!
|
1156
|
-
assert!(glob("/*").unwrap().next().is_some());
|
1157
|
-
|
1158
|
-
#[cfg(not(windows))]
|
1159
|
-
fn win() {}
|
1160
|
-
|
1161
|
-
#[cfg(windows)]
|
1162
|
-
fn win() {
|
1163
|
-
use std::env::current_dir;
|
1164
|
-
use std::path::Component;
|
1165
|
-
|
1166
|
-
// check windows absolute paths with host/device components
|
1167
|
-
let root_with_device = current_dir()
|
1168
|
-
.ok()
|
1169
|
-
.and_then(|p| match p.components().next().unwrap() {
|
1170
|
-
Component::Prefix(prefix_component) => {
|
1171
|
-
let path = Path::new(prefix_component.as_os_str());
|
1172
|
-
path.join("*");
|
1173
|
-
Some(path.to_path_buf())
|
1174
|
-
}
|
1175
|
-
_ => panic!("no prefix in this path"),
|
1176
|
-
})
|
1177
|
-
.unwrap();
|
1178
|
-
// FIXME (#9639): This needs to handle non-utf8 paths
|
1179
|
-
assert!(glob(root_with_device.as_os_str().to_str().unwrap())
|
1180
|
-
.unwrap()
|
1181
|
-
.next()
|
1182
|
-
.is_some());
|
1183
|
-
}
|
1184
|
-
win()
|
1185
|
-
}
|
1186
|
-
|
1187
|
-
#[test]
|
1188
|
-
fn test_wildcards() {
|
1189
|
-
assert!(Pattern::new("a*b").unwrap().matches("a_b"));
|
1190
|
-
assert!(Pattern::new("a*b*c").unwrap().matches("abc"));
|
1191
|
-
assert!(!Pattern::new("a*b*c").unwrap().matches("abcd"));
|
1192
|
-
assert!(Pattern::new("a*b*c").unwrap().matches("a_b_c"));
|
1193
|
-
assert!(Pattern::new("a*b*c").unwrap().matches("a___b___c"));
|
1194
|
-
assert!(Pattern::new("abc*abc*abc")
|
1195
|
-
.unwrap()
|
1196
|
-
.matches("abcabcabcabcabcabcabc"));
|
1197
|
-
assert!(!Pattern::new("abc*abc*abc")
|
1198
|
-
.unwrap()
|
1199
|
-
.matches("abcabcabcabcabcabcabca"));
|
1200
|
-
assert!(Pattern::new("a*a*a*a*a*a*a*a*a")
|
1201
|
-
.unwrap()
|
1202
|
-
.matches("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"));
|
1203
|
-
assert!(Pattern::new("a*b[xyz]c*d").unwrap().matches("abxcdbxcddd"));
|
1204
|
-
}
|
1205
|
-
|
1206
|
-
#[test]
|
1207
|
-
fn test_recursive_wildcards() {
|
1208
|
-
let pat = Pattern::new("some/**/needle.txt").unwrap();
|
1209
|
-
assert!(pat.matches("some/needle.txt"));
|
1210
|
-
assert!(pat.matches("some/one/needle.txt"));
|
1211
|
-
assert!(pat.matches("some/one/two/needle.txt"));
|
1212
|
-
assert!(pat.matches("some/other/needle.txt"));
|
1213
|
-
assert!(!pat.matches("some/other/notthis.txt"));
|
1214
|
-
|
1215
|
-
// a single ** should be valid, for globs
|
1216
|
-
// Should accept anything
|
1217
|
-
let pat = Pattern::new("**").unwrap();
|
1218
|
-
assert!(pat.is_recursive);
|
1219
|
-
assert!(pat.matches("abcde"));
|
1220
|
-
assert!(pat.matches(""));
|
1221
|
-
assert!(pat.matches(".asdf"));
|
1222
|
-
assert!(pat.matches("/x/.asdf"));
|
1223
|
-
|
1224
|
-
// collapse consecutive wildcards
|
1225
|
-
let pat = Pattern::new("some/**/**/needle.txt").unwrap();
|
1226
|
-
assert!(pat.matches("some/needle.txt"));
|
1227
|
-
assert!(pat.matches("some/one/needle.txt"));
|
1228
|
-
assert!(pat.matches("some/one/two/needle.txt"));
|
1229
|
-
assert!(pat.matches("some/other/needle.txt"));
|
1230
|
-
assert!(!pat.matches("some/other/notthis.txt"));
|
1231
|
-
|
1232
|
-
// ** can begin the pattern
|
1233
|
-
let pat = Pattern::new("**/test").unwrap();
|
1234
|
-
assert!(pat.matches("one/two/test"));
|
1235
|
-
assert!(pat.matches("one/test"));
|
1236
|
-
assert!(pat.matches("test"));
|
1237
|
-
|
1238
|
-
// /** can begin the pattern
|
1239
|
-
let pat = Pattern::new("/**/test").unwrap();
|
1240
|
-
assert!(pat.matches("/one/two/test"));
|
1241
|
-
assert!(pat.matches("/one/test"));
|
1242
|
-
assert!(pat.matches("/test"));
|
1243
|
-
assert!(!pat.matches("/one/notthis"));
|
1244
|
-
assert!(!pat.matches("/notthis"));
|
1245
|
-
|
1246
|
-
// Only start sub-patterns on start of path segment.
|
1247
|
-
let pat = Pattern::new("**/.*").unwrap();
|
1248
|
-
assert!(pat.matches(".abc"));
|
1249
|
-
assert!(pat.matches("abc/.abc"));
|
1250
|
-
assert!(!pat.matches("ab.c"));
|
1251
|
-
assert!(!pat.matches("abc/ab.c"));
|
1252
|
-
}
|
1253
|
-
|
1254
|
-
#[test]
|
1255
|
-
fn test_lots_of_files() {
|
1256
|
-
// this is a good test because it touches lots of differently named files
|
1257
|
-
glob("/*/*/*/*").unwrap().skip(10000).next();
|
1258
|
-
}
|
1259
|
-
|
1260
|
-
#[test]
|
1261
|
-
fn test_range_pattern() {
|
1262
|
-
let pat = Pattern::new("a[0-9]b").unwrap();
|
1263
|
-
for i in 0..10 {
|
1264
|
-
assert!(pat.matches(&format!("a{}b", i)));
|
1265
|
-
}
|
1266
|
-
assert!(!pat.matches("a_b"));
|
1267
|
-
|
1268
|
-
let pat = Pattern::new("a[!0-9]b").unwrap();
|
1269
|
-
for i in 0..10 {
|
1270
|
-
assert!(!pat.matches(&format!("a{}b", i)));
|
1271
|
-
}
|
1272
|
-
assert!(pat.matches("a_b"));
|
1273
|
-
|
1274
|
-
let pats = ["[a-z123]", "[1a-z23]", "[123a-z]"];
|
1275
|
-
for &p in pats.iter() {
|
1276
|
-
let pat = Pattern::new(p).unwrap();
|
1277
|
-
for c in "abcdefghijklmnopqrstuvwxyz".chars() {
|
1278
|
-
assert!(pat.matches(&c.to_string()));
|
1279
|
-
}
|
1280
|
-
for c in "ABCDEFGHIJKLMNOPQRSTUVWXYZ".chars() {
|
1281
|
-
let options = MatchOptions {
|
1282
|
-
case_sensitive: false,
|
1283
|
-
..MatchOptions::new()
|
1284
|
-
};
|
1285
|
-
assert!(pat.matches_with(&c.to_string(), options));
|
1286
|
-
}
|
1287
|
-
assert!(pat.matches("1"));
|
1288
|
-
assert!(pat.matches("2"));
|
1289
|
-
assert!(pat.matches("3"));
|
1290
|
-
}
|
1291
|
-
|
1292
|
-
let pats = ["[abc-]", "[-abc]", "[a-c-]"];
|
1293
|
-
for &p in pats.iter() {
|
1294
|
-
let pat = Pattern::new(p).unwrap();
|
1295
|
-
assert!(pat.matches("a"));
|
1296
|
-
assert!(pat.matches("b"));
|
1297
|
-
assert!(pat.matches("c"));
|
1298
|
-
assert!(pat.matches("-"));
|
1299
|
-
assert!(!pat.matches("d"));
|
1300
|
-
}
|
1301
|
-
|
1302
|
-
let pat = Pattern::new("[2-1]").unwrap();
|
1303
|
-
assert!(!pat.matches("1"));
|
1304
|
-
assert!(!pat.matches("2"));
|
1305
|
-
|
1306
|
-
assert!(Pattern::new("[-]").unwrap().matches("-"));
|
1307
|
-
assert!(!Pattern::new("[!-]").unwrap().matches("-"));
|
1308
|
-
}
|
1309
|
-
|
1310
|
-
#[test]
|
1311
|
-
fn test_pattern_matches() {
|
1312
|
-
let txt_pat = Pattern::new("*hello.txt").unwrap();
|
1313
|
-
assert!(txt_pat.matches("hello.txt"));
|
1314
|
-
assert!(txt_pat.matches("gareth_says_hello.txt"));
|
1315
|
-
assert!(txt_pat.matches("some/path/to/hello.txt"));
|
1316
|
-
assert!(txt_pat.matches("some\\path\\to\\hello.txt"));
|
1317
|
-
assert!(txt_pat.matches("/an/absolute/path/to/hello.txt"));
|
1318
|
-
assert!(!txt_pat.matches("hello.txt-and-then-some"));
|
1319
|
-
assert!(!txt_pat.matches("goodbye.txt"));
|
1320
|
-
|
1321
|
-
let dir_pat = Pattern::new("*some/path/to/hello.txt").unwrap();
|
1322
|
-
assert!(dir_pat.matches("some/path/to/hello.txt"));
|
1323
|
-
assert!(dir_pat.matches("a/bigger/some/path/to/hello.txt"));
|
1324
|
-
assert!(!dir_pat.matches("some/path/to/hello.txt-and-then-some"));
|
1325
|
-
assert!(!dir_pat.matches("some/other/path/to/hello.txt"));
|
1326
|
-
}
|
1327
|
-
|
1328
|
-
#[test]
|
1329
|
-
fn test_pattern_escape() {
|
1330
|
-
let s = "_[_]_?_*_!_";
|
1331
|
-
assert_eq!(Pattern::escape(s), "_[[]_[]]_[?]_[*]_!_".to_string());
|
1332
|
-
assert!(Pattern::new(&Pattern::escape(s)).unwrap().matches(s));
|
1333
|
-
}
|
1334
|
-
|
1335
|
-
#[test]
|
1336
|
-
fn test_pattern_matches_case_insensitive() {
|
1337
|
-
let pat = Pattern::new("aBcDeFg").unwrap();
|
1338
|
-
let options = MatchOptions {
|
1339
|
-
case_sensitive: false,
|
1340
|
-
require_literal_separator: false,
|
1341
|
-
require_literal_leading_dot: false,
|
1342
|
-
};
|
1343
|
-
|
1344
|
-
assert!(pat.matches_with("aBcDeFg", options));
|
1345
|
-
assert!(pat.matches_with("abcdefg", options));
|
1346
|
-
assert!(pat.matches_with("ABCDEFG", options));
|
1347
|
-
assert!(pat.matches_with("AbCdEfG", options));
|
1348
|
-
}
|
1349
|
-
|
1350
|
-
#[test]
|
1351
|
-
fn test_pattern_matches_case_insensitive_range() {
|
1352
|
-
let pat_within = Pattern::new("[a]").unwrap();
|
1353
|
-
let pat_except = Pattern::new("[!a]").unwrap();
|
1354
|
-
|
1355
|
-
let options_case_insensitive = MatchOptions {
|
1356
|
-
case_sensitive: false,
|
1357
|
-
require_literal_separator: false,
|
1358
|
-
require_literal_leading_dot: false,
|
1359
|
-
};
|
1360
|
-
let options_case_sensitive = MatchOptions {
|
1361
|
-
case_sensitive: true,
|
1362
|
-
require_literal_separator: false,
|
1363
|
-
require_literal_leading_dot: false,
|
1364
|
-
};
|
1365
|
-
|
1366
|
-
assert!(pat_within.matches_with("a", options_case_insensitive));
|
1367
|
-
assert!(pat_within.matches_with("A", options_case_insensitive));
|
1368
|
-
assert!(!pat_within.matches_with("A", options_case_sensitive));
|
1369
|
-
|
1370
|
-
assert!(!pat_except.matches_with("a", options_case_insensitive));
|
1371
|
-
assert!(!pat_except.matches_with("A", options_case_insensitive));
|
1372
|
-
assert!(pat_except.matches_with("A", options_case_sensitive));
|
1373
|
-
}
|
1374
|
-
|
1375
|
-
#[test]
|
1376
|
-
fn test_pattern_matches_require_literal_separator() {
|
1377
|
-
let options_require_literal = MatchOptions {
|
1378
|
-
case_sensitive: true,
|
1379
|
-
require_literal_separator: true,
|
1380
|
-
require_literal_leading_dot: false,
|
1381
|
-
};
|
1382
|
-
let options_not_require_literal = MatchOptions {
|
1383
|
-
case_sensitive: true,
|
1384
|
-
require_literal_separator: false,
|
1385
|
-
require_literal_leading_dot: false,
|
1386
|
-
};
|
1387
|
-
|
1388
|
-
assert!(Pattern::new("abc/def")
|
1389
|
-
.unwrap()
|
1390
|
-
.matches_with("abc/def", options_require_literal));
|
1391
|
-
assert!(!Pattern::new("abc?def")
|
1392
|
-
.unwrap()
|
1393
|
-
.matches_with("abc/def", options_require_literal));
|
1394
|
-
assert!(!Pattern::new("abc*def")
|
1395
|
-
.unwrap()
|
1396
|
-
.matches_with("abc/def", options_require_literal));
|
1397
|
-
assert!(!Pattern::new("abc[/]def")
|
1398
|
-
.unwrap()
|
1399
|
-
.matches_with("abc/def", options_require_literal));
|
1400
|
-
|
1401
|
-
assert!(Pattern::new("abc/def")
|
1402
|
-
.unwrap()
|
1403
|
-
.matches_with("abc/def", options_not_require_literal));
|
1404
|
-
assert!(Pattern::new("abc?def")
|
1405
|
-
.unwrap()
|
1406
|
-
.matches_with("abc/def", options_not_require_literal));
|
1407
|
-
assert!(Pattern::new("abc*def")
|
1408
|
-
.unwrap()
|
1409
|
-
.matches_with("abc/def", options_not_require_literal));
|
1410
|
-
assert!(Pattern::new("abc[/]def")
|
1411
|
-
.unwrap()
|
1412
|
-
.matches_with("abc/def", options_not_require_literal));
|
1413
|
-
}
|
1414
|
-
|
1415
|
-
#[test]
|
1416
|
-
fn test_pattern_matches_require_literal_leading_dot() {
|
1417
|
-
let options_require_literal_leading_dot = MatchOptions {
|
1418
|
-
case_sensitive: true,
|
1419
|
-
require_literal_separator: false,
|
1420
|
-
require_literal_leading_dot: true,
|
1421
|
-
};
|
1422
|
-
let options_not_require_literal_leading_dot = MatchOptions {
|
1423
|
-
case_sensitive: true,
|
1424
|
-
require_literal_separator: false,
|
1425
|
-
require_literal_leading_dot: false,
|
1426
|
-
};
|
1427
|
-
|
1428
|
-
let f = |options| {
|
1429
|
-
Pattern::new("*.txt")
|
1430
|
-
.unwrap()
|
1431
|
-
.matches_with(".hello.txt", options)
|
1432
|
-
};
|
1433
|
-
assert!(f(options_not_require_literal_leading_dot));
|
1434
|
-
assert!(!f(options_require_literal_leading_dot));
|
1435
|
-
|
1436
|
-
let f = |options| {
|
1437
|
-
Pattern::new(".*.*")
|
1438
|
-
.unwrap()
|
1439
|
-
.matches_with(".hello.txt", options)
|
1440
|
-
};
|
1441
|
-
assert!(f(options_not_require_literal_leading_dot));
|
1442
|
-
assert!(f(options_require_literal_leading_dot));
|
1443
|
-
|
1444
|
-
let f = |options| {
|
1445
|
-
Pattern::new("aaa/bbb/*")
|
1446
|
-
.unwrap()
|
1447
|
-
.matches_with("aaa/bbb/.ccc", options)
|
1448
|
-
};
|
1449
|
-
assert!(f(options_not_require_literal_leading_dot));
|
1450
|
-
assert!(!f(options_require_literal_leading_dot));
|
1451
|
-
|
1452
|
-
let f = |options| {
|
1453
|
-
Pattern::new("aaa/bbb/*")
|
1454
|
-
.unwrap()
|
1455
|
-
.matches_with("aaa/bbb/c.c.c.", options)
|
1456
|
-
};
|
1457
|
-
assert!(f(options_not_require_literal_leading_dot));
|
1458
|
-
assert!(f(options_require_literal_leading_dot));
|
1459
|
-
|
1460
|
-
let f = |options| {
|
1461
|
-
Pattern::new("aaa/bbb/.*")
|
1462
|
-
.unwrap()
|
1463
|
-
.matches_with("aaa/bbb/.ccc", options)
|
1464
|
-
};
|
1465
|
-
assert!(f(options_not_require_literal_leading_dot));
|
1466
|
-
assert!(f(options_require_literal_leading_dot));
|
1467
|
-
|
1468
|
-
let f = |options| {
|
1469
|
-
Pattern::new("aaa/?bbb")
|
1470
|
-
.unwrap()
|
1471
|
-
.matches_with("aaa/.bbb", options)
|
1472
|
-
};
|
1473
|
-
assert!(f(options_not_require_literal_leading_dot));
|
1474
|
-
assert!(!f(options_require_literal_leading_dot));
|
1475
|
-
|
1476
|
-
let f = |options| {
|
1477
|
-
Pattern::new("aaa/[.]bbb")
|
1478
|
-
.unwrap()
|
1479
|
-
.matches_with("aaa/.bbb", options)
|
1480
|
-
};
|
1481
|
-
assert!(f(options_not_require_literal_leading_dot));
|
1482
|
-
assert!(!f(options_require_literal_leading_dot));
|
1483
|
-
|
1484
|
-
let f = |options| Pattern::new("**/*").unwrap().matches_with(".bbb", options);
|
1485
|
-
assert!(f(options_not_require_literal_leading_dot));
|
1486
|
-
assert!(!f(options_require_literal_leading_dot));
|
1487
|
-
}
|
1488
|
-
|
1489
|
-
#[test]
|
1490
|
-
fn test_matches_path() {
|
1491
|
-
// on windows, (Path::new("a/b").as_str().unwrap() == "a\\b"), so this
|
1492
|
-
// tests that / and \ are considered equivalent on windows
|
1493
|
-
assert!(Pattern::new("a/b").unwrap().matches_path(&Path::new("a/b")));
|
1494
|
-
}
|
1495
|
-
|
1496
|
-
#[test]
|
1497
|
-
fn test_path_join() {
|
1498
|
-
let pattern = Path::new("one").join(&Path::new("**/*.rs"));
|
1499
|
-
assert!(Pattern::new(pattern.to_str().unwrap()).is_ok());
|
1500
|
-
}
|
1501
|
-
}
|