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.
Files changed (973) hide show
  1. checksums.yaml +4 -4
  2. data/.cargo/config +2 -2
  3. data/Cargo.lock +22 -31
  4. data/ext/cargo-vendor/codeowners-0.2.17/.cargo-checksum.json +1 -0
  5. data/ext/cargo-vendor/codeowners-0.2.17/Cargo.lock +1257 -0
  6. data/ext/cargo-vendor/codeowners-0.2.17/Cargo.toml +111 -0
  7. data/ext/cargo-vendor/codeowners-0.2.17/README.md +287 -0
  8. data/ext/cargo-vendor/codeowners-0.2.17/dev/run_benchmarks_for_gv.sh +12 -0
  9. data/ext/cargo-vendor/codeowners-0.2.17/rust-toolchain.toml +4 -0
  10. data/ext/cargo-vendor/codeowners-0.2.17/src/cache/file.rs +179 -0
  11. data/ext/cargo-vendor/codeowners-0.2.17/src/cli.rs +129 -0
  12. data/ext/cargo-vendor/codeowners-0.2.17/src/common_test.rs +358 -0
  13. data/ext/cargo-vendor/codeowners-0.2.17/src/config.rs +126 -0
  14. data/ext/cargo-vendor/codeowners-0.2.17/src/crosscheck.rs +90 -0
  15. data/ext/cargo-vendor/codeowners-0.2.17/src/lib.rs +11 -0
  16. data/ext/cargo-vendor/codeowners-0.2.17/src/main.rs +43 -0
  17. data/ext/cargo-vendor/codeowners-0.2.17/src/ownership/codeowners_file_parser.rs +504 -0
  18. data/ext/cargo-vendor/codeowners-0.2.17/src/ownership/codeowners_query.rs +32 -0
  19. data/ext/cargo-vendor/codeowners-0.2.17/src/ownership/file_generator.rs +203 -0
  20. data/ext/cargo-vendor/codeowners-0.2.17/src/ownership/file_owner_resolver.rs +414 -0
  21. data/ext/cargo-vendor/codeowners-0.2.17/src/ownership/mapper/annotated_file_mapper.rs +158 -0
  22. data/ext/cargo-vendor/codeowners-0.2.17/src/ownership/mapper/package_mapper.rs +220 -0
  23. data/ext/cargo-vendor/codeowners-0.2.17/src/ownership/mapper.rs +249 -0
  24. data/ext/cargo-vendor/codeowners-0.2.17/src/ownership/validator.rs +218 -0
  25. data/ext/cargo-vendor/codeowners-0.2.17/src/ownership.rs +223 -0
  26. data/ext/cargo-vendor/codeowners-0.2.17/src/path_utils.rs +49 -0
  27. data/ext/cargo-vendor/codeowners-0.2.17/src/project.rs +229 -0
  28. data/ext/cargo-vendor/codeowners-0.2.17/src/project_builder.rs +337 -0
  29. data/ext/cargo-vendor/codeowners-0.2.17/src/project_file_builder.rs +107 -0
  30. data/ext/cargo-vendor/codeowners-0.2.17/src/runner/api.rs +141 -0
  31. data/ext/cargo-vendor/codeowners-0.2.17/src/runner/types.rs +37 -0
  32. data/ext/cargo-vendor/codeowners-0.2.17/src/runner.rs +390 -0
  33. data/ext/cargo-vendor/codeowners-0.2.17/src/tracked_files.rs +58 -0
  34. data/ext/cargo-vendor/codeowners-0.2.17/tests/common/mod.rs +179 -0
  35. data/ext/cargo-vendor/codeowners-0.2.17/tests/crosscheck_owners_test.rs +74 -0
  36. data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/javascript_only_project/.github/CODEOWNERS +9 -0
  37. data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/javascript_only_project/.keep +3 -0
  38. data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/javascript_only_project/config/code_ownership.yml +12 -0
  39. data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/javascript_only_project/config/teams/design.yml +7 -0
  40. data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/javascript_only_project/config/teams/frontend.yml +6 -0
  41. data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/javascript_only_project/frontend/apps/public/index.tsx +6 -0
  42. data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/javascript_only_project/frontend/packages/dashboard/package.json +9 -0
  43. data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/javascript_only_project/frontend/packages/dashboard/src/index.tsx +6 -0
  44. data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/javascript_only_project/frontend/packages/ui-kit/.codeowner +3 -0
  45. data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/javascript_only_project/frontend/packages/ui-kit/src/button.tsx +5 -0
  46. data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/multiple-directory-owners/config/code_ownership.yml +10 -0
  47. data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/valid_project/.github/CODEOWNERS +41 -0
  48. data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/valid_project/config/code_ownership.yml +10 -0
  49. data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/valid_project/javascript/packages/list/page-admin.tsx +1 -0
  50. data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/valid_project/ruby/app/models/payroll.rb +3 -0
  51. data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/valid_project/ruby/app/views/foos/edit.erb +1 -0
  52. data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/valid_project/ruby/app/views/foos/index.html.erb +1 -0
  53. data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/valid_project/ruby/app/views/foos/new.html.erb +1 -0
  54. data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/valid_project_with_overrides/.github/CODEOWNERS +53 -0
  55. data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/valid_project_with_overrides/config/code_ownership.yml +10 -0
  56. data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/valid_project_with_overrides/config/teams/brewers.yml +11 -0
  57. data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/valid_project_with_overrides/config/teams/cubs.yml +9 -0
  58. data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/valid_project_with_overrides/config/teams/giants.yml +8 -0
  59. data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/valid_project_with_overrides/config/teams/rockies.yml +8 -0
  60. data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/valid_project_with_overrides/frontend/packages/components/datepicker/package.json +5 -0
  61. data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/valid_project_with_overrides/frontend/packages/components/datepicker/src/picks/dp.tsx +3 -0
  62. data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/valid_project_with_overrides/frontend/packages/components/list/package.json +5 -0
  63. data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/valid_project_with_overrides/frontend/packages/components/list/src/item.tsx +3 -0
  64. data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/valid_project_with_overrides/frontend/packages/components/textfield/package.json +5 -0
  65. data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/valid_project_with_overrides/frontend/packages/components/textfield/src/field.tsx +3 -0
  66. data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/valid_project_with_overrides/frontend/packages/components/textfield/src/fields/small.tsx +3 -0
  67. data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/valid_project_with_overrides/gems/apollo/lib/apollo.rb +6 -0
  68. data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/valid_project_with_overrides/gems/ivy/lib/ivy.rb +6 -0
  69. data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/valid_project_with_overrides/gems/lager/lib/lager.rb +6 -0
  70. data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/valid_project_with_overrides/gems/summit/lib/summit.rb +6 -0
  71. data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/valid_project_with_overrides/packs/games/package.yml +1 -0
  72. data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/valid_project_with_overrides/packs/locations/app/services/capacity.rb +0 -0
  73. data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/valid_project_with_overrides/packs/locations/package.yml +1 -0
  74. data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/valid_project_with_overrides/packs/schedule/app/services/date.rb +0 -0
  75. data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/valid_project_with_overrides/packs/schedule/package.yml +1 -0
  76. data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/valid_project_with_overrides/ruby/app/brewers/lib/util.rb +3 -0
  77. data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/valid_project_with_overrides/ruby/app/brewers/services/play.rb +9 -0
  78. data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/valid_project_with_overrides/ruby/app/cubs/.codeowner +3 -0
  79. data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/valid_project_with_overrides/ruby/app/cubs/services/models/.codeowner +1 -0
  80. data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/valid_project_with_overrides/ruby/app/cubs/services/models/db/price.rb +5 -0
  81. data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/valid_project_with_overrides/ruby/app/cubs/services/models/entertainment.rb +0 -0
  82. data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/valid_project_with_overrides/ruby/app/cubs/services/play.rb +5 -0
  83. data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/valid_project_with_overrides/ruby/app/giants/services/play.rb +0 -0
  84. data/ext/cargo-vendor/codeowners-0.2.17/tests/fixtures/valid_project_with_overrides/ruby/app/rockies/services/play.rb +0 -0
  85. data/ext/cargo-vendor/codeowners-0.2.17/tests/invalid_project_test.rs +144 -0
  86. data/ext/cargo-vendor/codeowners-0.2.17/tests/multiple_directory_owners_test.rs +41 -0
  87. data/ext/cargo-vendor/codeowners-0.2.17/tests/runner_api.rs +181 -0
  88. data/ext/cargo-vendor/codeowners-0.2.17/tests/untracked_files_test.rs +38 -0
  89. data/ext/cargo-vendor/codeowners-0.2.17/tests/valid_project_test.rs +348 -0
  90. data/ext/cargo-vendor/codeowners-0.2.17/tests/valid_project_with_overrides_test.rs +38 -0
  91. data/ext/cargo-vendor/codeowners-0.2.17/tmp/.gitkeep +0 -0
  92. data/ext/cargo-vendor/glob-0.3.3/.cargo-checksum.json +1 -0
  93. data/ext/cargo-vendor/glob-0.3.3/.cargo_vcs_info.json +6 -0
  94. data/ext/cargo-vendor/glob-0.3.3/.github/workflows/rust.yml +99 -0
  95. data/ext/cargo-vendor/glob-0.3.3/CHANGELOG.md +44 -0
  96. data/ext/cargo-vendor/glob-0.3.3/Cargo.lock +107 -0
  97. data/ext/cargo-vendor/glob-0.3.3/Cargo.toml +45 -0
  98. data/ext/cargo-vendor/glob-0.3.3/Cargo.toml.orig +18 -0
  99. data/ext/cargo-vendor/glob-0.3.3/README.md +38 -0
  100. data/ext/cargo-vendor/glob-0.3.3/src/lib.rs +1511 -0
  101. data/ext/cargo-vendor/glob-0.3.3/tests/glob-std.rs +477 -0
  102. data/ext/cargo-vendor/indexmap-2.11.0/.cargo-checksum.json +1 -0
  103. data/ext/cargo-vendor/indexmap-2.11.0/.cargo_vcs_info.json +6 -0
  104. data/ext/cargo-vendor/indexmap-2.11.0/.github/workflows/ci.yml +165 -0
  105. data/ext/cargo-vendor/indexmap-2.11.0/Cargo.lock +243 -0
  106. data/ext/cargo-vendor/indexmap-2.11.0/Cargo.toml +148 -0
  107. data/ext/cargo-vendor/indexmap-2.11.0/Cargo.toml.orig +62 -0
  108. data/ext/cargo-vendor/indexmap-2.11.0/RELEASES.md +575 -0
  109. data/ext/cargo-vendor/indexmap-2.11.0/src/lib.rs +290 -0
  110. data/ext/cargo-vendor/indexmap-2.11.0/src/map/core/entry.rs +625 -0
  111. data/ext/cargo-vendor/indexmap-2.11.0/src/map/core.rs +764 -0
  112. data/ext/cargo-vendor/indexmap-2.11.0/src/map/mutable.rs +165 -0
  113. data/ext/cargo-vendor/indexmap-2.11.0/src/map/slice.rs +800 -0
  114. data/ext/cargo-vendor/indexmap-2.11.0/src/map/tests.rs +1312 -0
  115. data/ext/cargo-vendor/indexmap-2.11.0/src/map.rs +1832 -0
  116. data/ext/cargo-vendor/indexmap-2.11.0/src/rayon/map.rs +686 -0
  117. data/ext/cargo-vendor/indexmap-2.11.0/src/rayon/set.rs +777 -0
  118. data/ext/cargo-vendor/indexmap-2.11.0/src/set/mutable.rs +86 -0
  119. data/ext/cargo-vendor/indexmap-2.11.0/src/set/slice.rs +427 -0
  120. data/ext/cargo-vendor/indexmap-2.11.0/src/set/tests.rs +1060 -0
  121. data/ext/cargo-vendor/indexmap-2.11.0/src/set.rs +1454 -0
  122. data/ext/cargo-vendor/indexmap-2.11.0/src/sval.rs +36 -0
  123. data/ext/cargo-vendor/indexmap-2.11.0/tests/quick.rs +894 -0
  124. data/ext/cargo-vendor/rayon-1.11.0/.cargo-checksum.json +1 -0
  125. data/ext/cargo-vendor/rayon-1.11.0/.cargo_vcs_info.json +6 -0
  126. data/ext/cargo-vendor/rayon-1.11.0/Cargo.lock +318 -0
  127. data/ext/cargo-vendor/rayon-1.11.0/Cargo.toml +130 -0
  128. data/ext/cargo-vendor/rayon-1.11.0/Cargo.toml.orig +57 -0
  129. data/ext/cargo-vendor/rayon-1.11.0/FAQ.md +213 -0
  130. data/ext/cargo-vendor/rayon-1.11.0/README.md +150 -0
  131. data/ext/cargo-vendor/rayon-1.11.0/RELEASES.md +922 -0
  132. data/ext/cargo-vendor/rayon-1.11.0/src/array.rs +85 -0
  133. data/ext/cargo-vendor/rayon-1.11.0/src/collections/binary_heap.rs +129 -0
  134. data/ext/cargo-vendor/rayon-1.11.0/src/collections/btree_map.rs +66 -0
  135. data/ext/cargo-vendor/rayon-1.11.0/src/collections/btree_set.rs +52 -0
  136. data/ext/cargo-vendor/rayon-1.11.0/src/collections/hash_map.rs +93 -0
  137. data/ext/cargo-vendor/rayon-1.11.0/src/collections/hash_set.rs +79 -0
  138. data/ext/cargo-vendor/rayon-1.11.0/src/collections/linked_list.rs +66 -0
  139. data/ext/cargo-vendor/rayon-1.11.0/src/collections/mod.rs +84 -0
  140. data/ext/cargo-vendor/rayon-1.11.0/src/collections/vec_deque.rs +159 -0
  141. data/ext/cargo-vendor/rayon-1.11.0/src/iter/blocks.rs +129 -0
  142. data/ext/cargo-vendor/rayon-1.11.0/src/iter/chain.rs +258 -0
  143. data/ext/cargo-vendor/rayon-1.11.0/src/iter/chunks.rs +216 -0
  144. data/ext/cargo-vendor/rayon-1.11.0/src/iter/cloned.rs +219 -0
  145. data/ext/cargo-vendor/rayon-1.11.0/src/iter/collect/mod.rs +114 -0
  146. data/ext/cargo-vendor/rayon-1.11.0/src/iter/collect/test.rs +368 -0
  147. data/ext/cargo-vendor/rayon-1.11.0/src/iter/copied.rs +219 -0
  148. data/ext/cargo-vendor/rayon-1.11.0/src/iter/empty.rs +108 -0
  149. data/ext/cargo-vendor/rayon-1.11.0/src/iter/enumerate.rs +128 -0
  150. data/ext/cargo-vendor/rayon-1.11.0/src/iter/filter.rs +137 -0
  151. data/ext/cargo-vendor/rayon-1.11.0/src/iter/filter_map.rs +141 -0
  152. data/ext/cargo-vendor/rayon-1.11.0/src/iter/find_first_last/mod.rs +230 -0
  153. data/ext/cargo-vendor/rayon-1.11.0/src/iter/find_first_last/test.rs +102 -0
  154. data/ext/cargo-vendor/rayon-1.11.0/src/iter/flat_map.rs +153 -0
  155. data/ext/cargo-vendor/rayon-1.11.0/src/iter/flat_map_iter.rs +145 -0
  156. data/ext/cargo-vendor/rayon-1.11.0/src/iter/flatten.rs +134 -0
  157. data/ext/cargo-vendor/rayon-1.11.0/src/iter/flatten_iter.rs +124 -0
  158. data/ext/cargo-vendor/rayon-1.11.0/src/iter/fold.rs +289 -0
  159. data/ext/cargo-vendor/rayon-1.11.0/src/iter/fold_chunks.rs +224 -0
  160. data/ext/cargo-vendor/rayon-1.11.0/src/iter/fold_chunks_with.rs +220 -0
  161. data/ext/cargo-vendor/rayon-1.11.0/src/iter/from_par_iter.rs +280 -0
  162. data/ext/cargo-vendor/rayon-1.11.0/src/iter/inspect.rs +253 -0
  163. data/ext/cargo-vendor/rayon-1.11.0/src/iter/interleave.rs +326 -0
  164. data/ext/cargo-vendor/rayon-1.11.0/src/iter/interleave_shortest.rs +80 -0
  165. data/ext/cargo-vendor/rayon-1.11.0/src/iter/intersperse.rs +401 -0
  166. data/ext/cargo-vendor/rayon-1.11.0/src/iter/len.rs +262 -0
  167. data/ext/cargo-vendor/rayon-1.11.0/src/iter/map.rs +255 -0
  168. data/ext/cargo-vendor/rayon-1.11.0/src/iter/map_with.rs +565 -0
  169. data/ext/cargo-vendor/rayon-1.11.0/src/iter/mod.rs +3627 -0
  170. data/ext/cargo-vendor/rayon-1.11.0/src/iter/multizip.rs +335 -0
  171. data/ext/cargo-vendor/rayon-1.11.0/src/iter/once.rs +70 -0
  172. data/ext/cargo-vendor/rayon-1.11.0/src/iter/panic_fuse.rs +338 -0
  173. data/ext/cargo-vendor/rayon-1.11.0/src/iter/par_bridge.rs +157 -0
  174. data/ext/cargo-vendor/rayon-1.11.0/src/iter/plumbing/mod.rs +476 -0
  175. data/ext/cargo-vendor/rayon-1.11.0/src/iter/positions.rs +133 -0
  176. data/ext/cargo-vendor/rayon-1.11.0/src/iter/repeat.rs +295 -0
  177. data/ext/cargo-vendor/rayon-1.11.0/src/iter/rev.rs +119 -0
  178. data/ext/cargo-vendor/rayon-1.11.0/src/iter/skip.rs +93 -0
  179. data/ext/cargo-vendor/rayon-1.11.0/src/iter/skip_any.rs +140 -0
  180. data/ext/cargo-vendor/rayon-1.11.0/src/iter/skip_any_while.rs +162 -0
  181. data/ext/cargo-vendor/rayon-1.11.0/src/iter/splitter.rs +172 -0
  182. data/ext/cargo-vendor/rayon-1.11.0/src/iter/step_by.rs +135 -0
  183. data/ext/cargo-vendor/rayon-1.11.0/src/iter/take.rs +84 -0
  184. data/ext/cargo-vendor/rayon-1.11.0/src/iter/take_any.rs +140 -0
  185. data/ext/cargo-vendor/rayon-1.11.0/src/iter/take_any_while.rs +162 -0
  186. data/ext/cargo-vendor/rayon-1.11.0/src/iter/test.rs +2392 -0
  187. data/ext/cargo-vendor/rayon-1.11.0/src/iter/try_fold.rs +282 -0
  188. data/ext/cargo-vendor/rayon-1.11.0/src/iter/unzip.rs +524 -0
  189. data/ext/cargo-vendor/rayon-1.11.0/src/iter/update.rs +323 -0
  190. data/ext/cargo-vendor/rayon-1.11.0/src/iter/walk_tree.rs +524 -0
  191. data/ext/cargo-vendor/rayon-1.11.0/src/iter/while_some.rs +150 -0
  192. data/ext/cargo-vendor/rayon-1.11.0/src/iter/zip.rs +153 -0
  193. data/ext/cargo-vendor/rayon-1.11.0/src/iter/zip_eq.rs +67 -0
  194. data/ext/cargo-vendor/rayon-1.11.0/src/lib.rs +156 -0
  195. data/ext/cargo-vendor/rayon-1.11.0/src/math.rs +25 -0
  196. data/ext/cargo-vendor/rayon-1.11.0/src/option.rs +197 -0
  197. data/ext/cargo-vendor/rayon-1.11.0/src/range.rs +457 -0
  198. data/ext/cargo-vendor/rayon-1.11.0/src/range_inclusive.rs +381 -0
  199. data/ext/cargo-vendor/rayon-1.11.0/src/result.rs +132 -0
  200. data/ext/cargo-vendor/rayon-1.11.0/src/slice/chunk_by.rs +239 -0
  201. data/ext/cargo-vendor/rayon-1.11.0/src/slice/chunks.rs +387 -0
  202. data/ext/cargo-vendor/rayon-1.11.0/src/slice/mod.rs +1242 -0
  203. data/ext/cargo-vendor/rayon-1.11.0/src/slice/rchunks.rs +385 -0
  204. data/ext/cargo-vendor/rayon-1.11.0/src/slice/sort.rs +1686 -0
  205. data/ext/cargo-vendor/rayon-1.11.0/src/slice/test.rs +216 -0
  206. data/ext/cargo-vendor/rayon-1.11.0/src/str.rs +1005 -0
  207. data/ext/cargo-vendor/rayon-1.11.0/src/vec.rs +292 -0
  208. data/ext/cargo-vendor/rayon-1.11.0/tests/clones.rs +222 -0
  209. data/ext/cargo-vendor/rayon-1.11.0/tests/collect.rs +113 -0
  210. data/ext/cargo-vendor/rayon-1.11.0/tests/debug.rs +233 -0
  211. data/ext/cargo-vendor/rayon-1.11.0/tests/named-threads.rs +25 -0
  212. data/ext/cargo-vendor/rayon-1.11.0/tests/producer_split_at.rs +386 -0
  213. data/ext/cargo-vendor/rayon-1.11.0/tests/sort-panic-safe.rs +164 -0
  214. data/ext/cargo-vendor/rayon-1.11.0/tests/str.rs +122 -0
  215. data/ext/cargo-vendor/rayon-core-1.13.0/.cargo-checksum.json +1 -0
  216. data/ext/cargo-vendor/rayon-core-1.13.0/.cargo_vcs_info.json +6 -0
  217. data/ext/cargo-vendor/rayon-core-1.13.0/Cargo.lock +309 -0
  218. data/ext/cargo-vendor/rayon-core-1.13.0/Cargo.toml +93 -0
  219. data/ext/cargo-vendor/rayon-core-1.13.0/Cargo.toml.orig +35 -0
  220. data/ext/cargo-vendor/rayon-core-1.13.0/README.md +11 -0
  221. data/ext/cargo-vendor/rayon-core-1.13.0/src/broadcast/mod.rs +150 -0
  222. data/ext/cargo-vendor/rayon-core-1.13.0/src/join/mod.rs +186 -0
  223. data/ext/cargo-vendor/rayon-core-1.13.0/src/join/test.rs +150 -0
  224. data/ext/cargo-vendor/rayon-core-1.13.0/src/latch.rs +457 -0
  225. data/ext/cargo-vendor/rayon-core-1.13.0/src/lib.rs +864 -0
  226. data/ext/cargo-vendor/rayon-core-1.13.0/src/registry.rs +1002 -0
  227. data/ext/cargo-vendor/rayon-core-1.13.0/src/scope/mod.rs +773 -0
  228. data/ext/cargo-vendor/rayon-core-1.13.0/src/scope/test.rs +621 -0
  229. data/ext/cargo-vendor/rayon-core-1.13.0/src/sleep/README.md +219 -0
  230. data/ext/cargo-vendor/rayon-core-1.13.0/src/sleep/counters.rs +273 -0
  231. data/ext/cargo-vendor/rayon-core-1.13.0/src/sleep/mod.rs +324 -0
  232. data/ext/cargo-vendor/rayon-core-1.13.0/src/spawn/mod.rs +163 -0
  233. data/ext/cargo-vendor/rayon-core-1.13.0/src/spawn/test.rs +255 -0
  234. data/ext/cargo-vendor/rayon-core-1.13.0/src/test.rs +200 -0
  235. data/ext/cargo-vendor/rayon-core-1.13.0/src/thread_pool/mod.rs +502 -0
  236. data/ext/cargo-vendor/rayon-core-1.13.0/src/thread_pool/test.rs +418 -0
  237. data/ext/cargo-vendor/rayon-core-1.13.0/tests/use_current_thread.rs +57 -0
  238. data/ext/cargo-vendor/serde_json-1.0.143/.cargo-checksum.json +1 -0
  239. data/ext/cargo-vendor/serde_json-1.0.143/.cargo_vcs_info.json +6 -0
  240. data/ext/cargo-vendor/serde_json-1.0.143/.github/workflows/ci.yml +156 -0
  241. data/ext/cargo-vendor/serde_json-1.0.143/Cargo.lock +419 -0
  242. data/ext/cargo-vendor/serde_json-1.0.143/Cargo.toml +157 -0
  243. data/ext/cargo-vendor/serde_json-1.0.143/Cargo.toml.orig +91 -0
  244. data/ext/cargo-vendor/serde_json-1.0.143/src/lib.rs +438 -0
  245. data/ext/cargo-vendor/serde_json-1.0.143/src/map.rs +1181 -0
  246. data/ext/cargo-vendor/serde_json-1.0.143/src/ser.rs +2285 -0
  247. data/ext/cargo-vendor/serde_json-1.0.143/src/value/de.rs +1507 -0
  248. data/ext/cargo-vendor/tempfile-3.21.0/.cargo-checksum.json +1 -0
  249. data/ext/cargo-vendor/tempfile-3.21.0/.cargo_vcs_info.json +6 -0
  250. data/ext/cargo-vendor/tempfile-3.21.0/.github/workflows/ci.yml +109 -0
  251. data/ext/cargo-vendor/tempfile-3.21.0/CHANGELOG.md +364 -0
  252. data/ext/cargo-vendor/tempfile-3.21.0/Cargo.lock +196 -0
  253. data/ext/cargo-vendor/tempfile-3.21.0/Cargo.toml +98 -0
  254. data/ext/cargo-vendor/tempfile-3.21.0/Cargo.toml.orig +47 -0
  255. data/ext/cargo-vendor/winapi-util-0.1.10/.cargo-checksum.json +1 -0
  256. data/ext/cargo-vendor/winapi-util-0.1.10/.cargo_vcs_info.json +6 -0
  257. data/ext/cargo-vendor/winapi-util-0.1.10/.github/FUNDING.yml +1 -0
  258. data/ext/cargo-vendor/winapi-util-0.1.10/Cargo.lock +83 -0
  259. data/ext/cargo-vendor/winapi-util-0.1.10/Cargo.toml +54 -0
  260. data/ext/cargo-vendor/winapi-util-0.1.10/Cargo.toml.orig +25 -0
  261. data/ext/code_ownership/Cargo.toml +9 -9
  262. data/ext/code_ownership/src/lib.rs +40 -6
  263. data/lib/code_ownership/cli.rb +5 -18
  264. data/lib/code_ownership/private/for_file_output_builder.rb +83 -0
  265. data/lib/code_ownership/private/team_finder.rb +21 -7
  266. data/lib/code_ownership/version.rb +1 -1
  267. data/lib/code_ownership.rb +173 -6
  268. metadata +513 -706
  269. data/ext/cargo-vendor/codeowners-0.2.7/.cargo-checksum.json +0 -1
  270. data/ext/cargo-vendor/codeowners-0.2.7/Cargo.lock +0 -1230
  271. data/ext/cargo-vendor/codeowners-0.2.7/Cargo.toml +0 -95
  272. data/ext/cargo-vendor/codeowners-0.2.7/README.md +0 -204
  273. data/ext/cargo-vendor/codeowners-0.2.7/dev/run_benchmarks_for_gv.sh +0 -13
  274. data/ext/cargo-vendor/codeowners-0.2.7/rust-toolchain.toml +0 -4
  275. data/ext/cargo-vendor/codeowners-0.2.7/src/cache/file.rs +0 -181
  276. data/ext/cargo-vendor/codeowners-0.2.7/src/cli.rs +0 -119
  277. data/ext/cargo-vendor/codeowners-0.2.7/src/common_test.rs +0 -338
  278. data/ext/cargo-vendor/codeowners-0.2.7/src/config.rs +0 -118
  279. data/ext/cargo-vendor/codeowners-0.2.7/src/lib.rs +0 -8
  280. data/ext/cargo-vendor/codeowners-0.2.7/src/main.rs +0 -43
  281. data/ext/cargo-vendor/codeowners-0.2.7/src/ownership/file_generator.rs +0 -203
  282. data/ext/cargo-vendor/codeowners-0.2.7/src/ownership/for_file_fast.rs +0 -425
  283. data/ext/cargo-vendor/codeowners-0.2.7/src/ownership/mapper/package_mapper.rs +0 -220
  284. data/ext/cargo-vendor/codeowners-0.2.7/src/ownership/mapper/team_file_mapper.rs +0 -123
  285. data/ext/cargo-vendor/codeowners-0.2.7/src/ownership/mapper.rs +0 -249
  286. data/ext/cargo-vendor/codeowners-0.2.7/src/ownership/parser.rs +0 -486
  287. data/ext/cargo-vendor/codeowners-0.2.7/src/ownership/tests.rs +0 -219
  288. data/ext/cargo-vendor/codeowners-0.2.7/src/ownership/validator.rs +0 -218
  289. data/ext/cargo-vendor/codeowners-0.2.7/src/ownership.rs +0 -220
  290. data/ext/cargo-vendor/codeowners-0.2.7/src/project.rs +0 -229
  291. data/ext/cargo-vendor/codeowners-0.2.7/src/project_builder.rs +0 -319
  292. data/ext/cargo-vendor/codeowners-0.2.7/src/project_file_builder.rs +0 -75
  293. data/ext/cargo-vendor/codeowners-0.2.7/src/runner.rs +0 -312
  294. data/ext/cargo-vendor/codeowners-0.2.7/tests/common/mod.rs +0 -113
  295. data/ext/cargo-vendor/codeowners-0.2.7/tests/fixtures/multiple-directory-owners/config/code_ownership.yml +0 -10
  296. data/ext/cargo-vendor/codeowners-0.2.7/tests/fixtures/valid_project/.github/CODEOWNERS +0 -37
  297. data/ext/cargo-vendor/codeowners-0.2.7/tests/fixtures/valid_project/config/code_ownership.yml +0 -10
  298. data/ext/cargo-vendor/codeowners-0.2.7/tests/fixtures/valid_project/ruby/app/models/payroll.rb +0 -3
  299. data/ext/cargo-vendor/codeowners-0.2.7/tests/invalid_project_test.rs +0 -90
  300. data/ext/cargo-vendor/codeowners-0.2.7/tests/multiple_directory_owners_test.rs +0 -35
  301. data/ext/cargo-vendor/codeowners-0.2.7/tests/valid_project_test.rs +0 -284
  302. data/ext/cargo-vendor/glob-0.3.2/.cargo-checksum.json +0 -1
  303. data/ext/cargo-vendor/glob-0.3.2/.cargo_vcs_info.json +0 -6
  304. data/ext/cargo-vendor/glob-0.3.2/.github/workflows/rust.yml +0 -65
  305. data/ext/cargo-vendor/glob-0.3.2/CHANGELOG.md +0 -33
  306. data/ext/cargo-vendor/glob-0.3.2/Cargo.lock +0 -107
  307. data/ext/cargo-vendor/glob-0.3.2/Cargo.toml +0 -45
  308. data/ext/cargo-vendor/glob-0.3.2/Cargo.toml.orig +0 -19
  309. data/ext/cargo-vendor/glob-0.3.2/README.md +0 -37
  310. data/ext/cargo-vendor/glob-0.3.2/src/lib.rs +0 -1501
  311. data/ext/cargo-vendor/glob-0.3.2/tests/glob-std.rs +0 -474
  312. data/ext/cargo-vendor/indexmap-2.10.0/.cargo-checksum.json +0 -1
  313. data/ext/cargo-vendor/indexmap-2.10.0/.cargo_vcs_info.json +0 -6
  314. data/ext/cargo-vendor/indexmap-2.10.0/.github/workflows/ci.yml +0 -159
  315. data/ext/cargo-vendor/indexmap-2.10.0/Cargo.lock +0 -236
  316. data/ext/cargo-vendor/indexmap-2.10.0/Cargo.toml +0 -142
  317. data/ext/cargo-vendor/indexmap-2.10.0/Cargo.toml.orig +0 -61
  318. data/ext/cargo-vendor/indexmap-2.10.0/RELEASES.md +0 -563
  319. data/ext/cargo-vendor/indexmap-2.10.0/src/lib.rs +0 -288
  320. data/ext/cargo-vendor/indexmap-2.10.0/src/map/core/entry.rs +0 -574
  321. data/ext/cargo-vendor/indexmap-2.10.0/src/map/core.rs +0 -735
  322. data/ext/cargo-vendor/indexmap-2.10.0/src/map/mutable.rs +0 -165
  323. data/ext/cargo-vendor/indexmap-2.10.0/src/map/slice.rs +0 -751
  324. data/ext/cargo-vendor/indexmap-2.10.0/src/map/tests.rs +0 -1228
  325. data/ext/cargo-vendor/indexmap-2.10.0/src/map.rs +0 -1697
  326. data/ext/cargo-vendor/indexmap-2.10.0/src/rayon/map.rs +0 -662
  327. data/ext/cargo-vendor/indexmap-2.10.0/src/rayon/set.rs +0 -755
  328. data/ext/cargo-vendor/indexmap-2.10.0/src/set/mutable.rs +0 -86
  329. data/ext/cargo-vendor/indexmap-2.10.0/src/set/slice.rs +0 -380
  330. data/ext/cargo-vendor/indexmap-2.10.0/src/set/tests.rs +0 -999
  331. data/ext/cargo-vendor/indexmap-2.10.0/src/set.rs +0 -1340
  332. data/ext/cargo-vendor/indexmap-2.10.0/tests/quick.rs +0 -800
  333. data/ext/cargo-vendor/rayon-1.10.0/.cargo-checksum.json +0 -1
  334. data/ext/cargo-vendor/rayon-1.10.0/.cargo_vcs_info.json +0 -6
  335. data/ext/cargo-vendor/rayon-1.10.0/Cargo.toml +0 -61
  336. data/ext/cargo-vendor/rayon-1.10.0/Cargo.toml.orig +0 -39
  337. data/ext/cargo-vendor/rayon-1.10.0/FAQ.md +0 -227
  338. data/ext/cargo-vendor/rayon-1.10.0/README.md +0 -151
  339. data/ext/cargo-vendor/rayon-1.10.0/RELEASES.md +0 -909
  340. data/ext/cargo-vendor/rayon-1.10.0/src/array.rs +0 -85
  341. data/ext/cargo-vendor/rayon-1.10.0/src/collections/binary_heap.rs +0 -120
  342. data/ext/cargo-vendor/rayon-1.10.0/src/collections/btree_map.rs +0 -66
  343. data/ext/cargo-vendor/rayon-1.10.0/src/collections/btree_set.rs +0 -52
  344. data/ext/cargo-vendor/rayon-1.10.0/src/collections/hash_map.rs +0 -96
  345. data/ext/cargo-vendor/rayon-1.10.0/src/collections/hash_set.rs +0 -80
  346. data/ext/cargo-vendor/rayon-1.10.0/src/collections/linked_list.rs +0 -66
  347. data/ext/cargo-vendor/rayon-1.10.0/src/collections/mod.rs +0 -84
  348. data/ext/cargo-vendor/rayon-1.10.0/src/collections/vec_deque.rs +0 -159
  349. data/ext/cargo-vendor/rayon-1.10.0/src/iter/blocks.rs +0 -131
  350. data/ext/cargo-vendor/rayon-1.10.0/src/iter/chain.rs +0 -267
  351. data/ext/cargo-vendor/rayon-1.10.0/src/iter/chunks.rs +0 -224
  352. data/ext/cargo-vendor/rayon-1.10.0/src/iter/cloned.rs +0 -223
  353. data/ext/cargo-vendor/rayon-1.10.0/src/iter/collect/mod.rs +0 -116
  354. data/ext/cargo-vendor/rayon-1.10.0/src/iter/collect/test.rs +0 -373
  355. data/ext/cargo-vendor/rayon-1.10.0/src/iter/copied.rs +0 -223
  356. data/ext/cargo-vendor/rayon-1.10.0/src/iter/empty.rs +0 -104
  357. data/ext/cargo-vendor/rayon-1.10.0/src/iter/enumerate.rs +0 -133
  358. data/ext/cargo-vendor/rayon-1.10.0/src/iter/filter.rs +0 -141
  359. data/ext/cargo-vendor/rayon-1.10.0/src/iter/filter_map.rs +0 -142
  360. data/ext/cargo-vendor/rayon-1.10.0/src/iter/find_first_last/mod.rs +0 -230
  361. data/ext/cargo-vendor/rayon-1.10.0/src/iter/find_first_last/test.rs +0 -105
  362. data/ext/cargo-vendor/rayon-1.10.0/src/iter/flat_map.rs +0 -154
  363. data/ext/cargo-vendor/rayon-1.10.0/src/iter/flat_map_iter.rs +0 -147
  364. data/ext/cargo-vendor/rayon-1.10.0/src/iter/flatten.rs +0 -140
  365. data/ext/cargo-vendor/rayon-1.10.0/src/iter/flatten_iter.rs +0 -132
  366. data/ext/cargo-vendor/rayon-1.10.0/src/iter/fold.rs +0 -302
  367. data/ext/cargo-vendor/rayon-1.10.0/src/iter/fold_chunks.rs +0 -236
  368. data/ext/cargo-vendor/rayon-1.10.0/src/iter/fold_chunks_with.rs +0 -231
  369. data/ext/cargo-vendor/rayon-1.10.0/src/iter/from_par_iter.rs +0 -310
  370. data/ext/cargo-vendor/rayon-1.10.0/src/iter/inspect.rs +0 -257
  371. data/ext/cargo-vendor/rayon-1.10.0/src/iter/interleave.rs +0 -335
  372. data/ext/cargo-vendor/rayon-1.10.0/src/iter/interleave_shortest.rs +0 -85
  373. data/ext/cargo-vendor/rayon-1.10.0/src/iter/intersperse.rs +0 -410
  374. data/ext/cargo-vendor/rayon-1.10.0/src/iter/len.rs +0 -270
  375. data/ext/cargo-vendor/rayon-1.10.0/src/iter/map.rs +0 -259
  376. data/ext/cargo-vendor/rayon-1.10.0/src/iter/map_with.rs +0 -573
  377. data/ext/cargo-vendor/rayon-1.10.0/src/iter/mod.rs +0 -3656
  378. data/ext/cargo-vendor/rayon-1.10.0/src/iter/multizip.rs +0 -338
  379. data/ext/cargo-vendor/rayon-1.10.0/src/iter/once.rs +0 -68
  380. data/ext/cargo-vendor/rayon-1.10.0/src/iter/panic_fuse.rs +0 -342
  381. data/ext/cargo-vendor/rayon-1.10.0/src/iter/par_bridge.rs +0 -159
  382. data/ext/cargo-vendor/rayon-1.10.0/src/iter/plumbing/mod.rs +0 -483
  383. data/ext/cargo-vendor/rayon-1.10.0/src/iter/positions.rs +0 -137
  384. data/ext/cargo-vendor/rayon-1.10.0/src/iter/repeat.rs +0 -241
  385. data/ext/cargo-vendor/rayon-1.10.0/src/iter/rev.rs +0 -123
  386. data/ext/cargo-vendor/rayon-1.10.0/src/iter/skip.rs +0 -94
  387. data/ext/cargo-vendor/rayon-1.10.0/src/iter/skip_any.rs +0 -144
  388. data/ext/cargo-vendor/rayon-1.10.0/src/iter/skip_any_while.rs +0 -166
  389. data/ext/cargo-vendor/rayon-1.10.0/src/iter/splitter.rs +0 -174
  390. data/ext/cargo-vendor/rayon-1.10.0/src/iter/step_by.rs +0 -141
  391. data/ext/cargo-vendor/rayon-1.10.0/src/iter/take.rs +0 -85
  392. data/ext/cargo-vendor/rayon-1.10.0/src/iter/take_any.rs +0 -144
  393. data/ext/cargo-vendor/rayon-1.10.0/src/iter/take_any_while.rs +0 -166
  394. data/ext/cargo-vendor/rayon-1.10.0/src/iter/test.rs +0 -2333
  395. data/ext/cargo-vendor/rayon-1.10.0/src/iter/try_fold.rs +0 -298
  396. data/ext/cargo-vendor/rayon-1.10.0/src/iter/unzip.rs +0 -525
  397. data/ext/cargo-vendor/rayon-1.10.0/src/iter/update.rs +0 -327
  398. data/ext/cargo-vendor/rayon-1.10.0/src/iter/walk_tree.rs +0 -529
  399. data/ext/cargo-vendor/rayon-1.10.0/src/iter/while_some.rs +0 -154
  400. data/ext/cargo-vendor/rayon-1.10.0/src/iter/zip.rs +0 -158
  401. data/ext/cargo-vendor/rayon-1.10.0/src/iter/zip_eq.rs +0 -72
  402. data/ext/cargo-vendor/rayon-1.10.0/src/lib.rs +0 -160
  403. data/ext/cargo-vendor/rayon-1.10.0/src/math.rs +0 -54
  404. data/ext/cargo-vendor/rayon-1.10.0/src/option.rs +0 -203
  405. data/ext/cargo-vendor/rayon-1.10.0/src/range.rs +0 -454
  406. data/ext/cargo-vendor/rayon-1.10.0/src/range_inclusive.rs +0 -381
  407. data/ext/cargo-vendor/rayon-1.10.0/src/result.rs +0 -132
  408. data/ext/cargo-vendor/rayon-1.10.0/src/slice/chunk_by.rs +0 -244
  409. data/ext/cargo-vendor/rayon-1.10.0/src/slice/chunks.rs +0 -388
  410. data/ext/cargo-vendor/rayon-1.10.0/src/slice/mergesort.rs +0 -755
  411. data/ext/cargo-vendor/rayon-1.10.0/src/slice/mod.rs +0 -1226
  412. data/ext/cargo-vendor/rayon-1.10.0/src/slice/quicksort.rs +0 -902
  413. data/ext/cargo-vendor/rayon-1.10.0/src/slice/rchunks.rs +0 -386
  414. data/ext/cargo-vendor/rayon-1.10.0/src/slice/test.rs +0 -216
  415. data/ext/cargo-vendor/rayon-1.10.0/src/str.rs +0 -1010
  416. data/ext/cargo-vendor/rayon-1.10.0/src/vec.rs +0 -283
  417. data/ext/cargo-vendor/rayon-1.10.0/tests/clones.rs +0 -222
  418. data/ext/cargo-vendor/rayon-1.10.0/tests/collect.rs +0 -113
  419. data/ext/cargo-vendor/rayon-1.10.0/tests/debug.rs +0 -233
  420. data/ext/cargo-vendor/rayon-1.10.0/tests/named-threads.rs +0 -25
  421. data/ext/cargo-vendor/rayon-1.10.0/tests/producer_split_at.rs +0 -391
  422. data/ext/cargo-vendor/rayon-1.10.0/tests/sort-panic-safe.rs +0 -167
  423. data/ext/cargo-vendor/rayon-1.10.0/tests/str.rs +0 -119
  424. data/ext/cargo-vendor/rayon-core-1.12.1/.cargo-checksum.json +0 -1
  425. data/ext/cargo-vendor/rayon-core-1.12.1/.cargo_vcs_info.json +0 -6
  426. data/ext/cargo-vendor/rayon-core-1.12.1/Cargo.toml +0 -88
  427. data/ext/cargo-vendor/rayon-core-1.12.1/Cargo.toml.orig +0 -68
  428. data/ext/cargo-vendor/rayon-core-1.12.1/README.md +0 -11
  429. data/ext/cargo-vendor/rayon-core-1.12.1/src/broadcast/mod.rs +0 -150
  430. data/ext/cargo-vendor/rayon-core-1.12.1/src/join/mod.rs +0 -188
  431. data/ext/cargo-vendor/rayon-core-1.12.1/src/join/test.rs +0 -151
  432. data/ext/cargo-vendor/rayon-core-1.12.1/src/latch.rs +0 -461
  433. data/ext/cargo-vendor/rayon-core-1.12.1/src/lib.rs +0 -875
  434. data/ext/cargo-vendor/rayon-core-1.12.1/src/registry.rs +0 -996
  435. data/ext/cargo-vendor/rayon-core-1.12.1/src/scope/mod.rs +0 -769
  436. data/ext/cargo-vendor/rayon-core-1.12.1/src/scope/test.rs +0 -619
  437. data/ext/cargo-vendor/rayon-core-1.12.1/src/sleep/README.md +0 -219
  438. data/ext/cargo-vendor/rayon-core-1.12.1/src/sleep/counters.rs +0 -277
  439. data/ext/cargo-vendor/rayon-core-1.12.1/src/sleep/mod.rs +0 -325
  440. data/ext/cargo-vendor/rayon-core-1.12.1/src/spawn/mod.rs +0 -163
  441. data/ext/cargo-vendor/rayon-core-1.12.1/src/spawn/test.rs +0 -255
  442. data/ext/cargo-vendor/rayon-core-1.12.1/src/test.rs +0 -200
  443. data/ext/cargo-vendor/rayon-core-1.12.1/src/thread_pool/mod.rs +0 -508
  444. data/ext/cargo-vendor/rayon-core-1.12.1/src/thread_pool/test.rs +0 -418
  445. data/ext/cargo-vendor/rayon-core-1.12.1/tests/use_current_thread.rs +0 -57
  446. data/ext/cargo-vendor/serde_json-1.0.142/.cargo-checksum.json +0 -1
  447. data/ext/cargo-vendor/serde_json-1.0.142/.cargo_vcs_info.json +0 -6
  448. data/ext/cargo-vendor/serde_json-1.0.142/.github/workflows/ci.yml +0 -158
  449. data/ext/cargo-vendor/serde_json-1.0.142/Cargo.lock +0 -419
  450. data/ext/cargo-vendor/serde_json-1.0.142/Cargo.toml +0 -157
  451. data/ext/cargo-vendor/serde_json-1.0.142/Cargo.toml.orig +0 -91
  452. data/ext/cargo-vendor/serde_json-1.0.142/src/lib.rs +0 -438
  453. data/ext/cargo-vendor/serde_json-1.0.142/src/map.rs +0 -1174
  454. data/ext/cargo-vendor/serde_json-1.0.142/src/ser.rs +0 -2285
  455. data/ext/cargo-vendor/serde_json-1.0.142/src/value/de.rs +0 -1500
  456. data/ext/cargo-vendor/tempfile-3.20.0/.cargo-checksum.json +0 -1
  457. data/ext/cargo-vendor/tempfile-3.20.0/.cargo_vcs_info.json +0 -6
  458. data/ext/cargo-vendor/tempfile-3.20.0/.github/workflows/ci.yml +0 -107
  459. data/ext/cargo-vendor/tempfile-3.20.0/CHANGELOG.md +0 -360
  460. data/ext/cargo-vendor/tempfile-3.20.0/Cargo.lock +0 -183
  461. data/ext/cargo-vendor/tempfile-3.20.0/Cargo.toml +0 -98
  462. data/ext/cargo-vendor/tempfile-3.20.0/Cargo.toml.orig +0 -47
  463. data/ext/cargo-vendor/winapi-util-0.1.9/.cargo-checksum.json +0 -1
  464. data/ext/cargo-vendor/winapi-util-0.1.9/.cargo_vcs_info.json +0 -6
  465. data/ext/cargo-vendor/winapi-util-0.1.9/Cargo.toml +0 -53
  466. data/ext/cargo-vendor/winapi-util-0.1.9/Cargo.toml.orig +0 -25
  467. data/ext/cargo-vendor/windows-sys-0.59.0/.cargo-checksum.json +0 -1
  468. data/ext/cargo-vendor/windows-sys-0.59.0/.cargo_vcs_info.json +0 -6
  469. data/ext/cargo-vendor/windows-sys-0.59.0/Cargo.toml +0 -298
  470. data/ext/cargo-vendor/windows-sys-0.59.0/Cargo.toml.orig +0 -274
  471. data/ext/cargo-vendor/windows-sys-0.59.0/license-apache-2.0 +0 -201
  472. data/ext/cargo-vendor/windows-sys-0.59.0/license-mit +0 -21
  473. data/ext/cargo-vendor/windows-sys-0.59.0/readme.md +0 -87
  474. data/ext/cargo-vendor/windows-sys-0.59.0/rustfmt.toml +0 -2
  475. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Wdk/Devices/Bluetooth/mod.rs +0 -32
  476. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Wdk/Devices/HumanInterfaceDevice/mod.rs +0 -39
  477. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Wdk/Devices/mod.rs +0 -4
  478. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Wdk/Foundation/mod.rs +0 -1317
  479. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Wdk/Graphics/Direct3D/mod.rs +0 -9170
  480. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Wdk/Graphics/mod.rs +0 -2
  481. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Wdk/NetworkManagement/Ndis/mod.rs +0 -3892
  482. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Wdk/NetworkManagement/WindowsFilteringPlatform/mod.rs +0 -269
  483. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Wdk/NetworkManagement/mod.rs +0 -4
  484. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Wdk/Storage/FileSystem/Minifilters/mod.rs +0 -1392
  485. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Wdk/Storage/FileSystem/mod.rs +0 -4503
  486. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Wdk/Storage/mod.rs +0 -2
  487. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Wdk/System/IO/mod.rs +0 -2
  488. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Wdk/System/Memory/mod.rs +0 -11
  489. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Wdk/System/OfflineRegistry/mod.rs +0 -28
  490. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Wdk/System/Registry/mod.rs +0 -180
  491. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Wdk/System/SystemInformation/mod.rs +0 -18
  492. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Wdk/System/SystemServices/mod.rs +0 -13663
  493. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Wdk/System/Threading/mod.rs +0 -155
  494. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Wdk/System/mod.rs +0 -14
  495. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Wdk/mod.rs +0 -12
  496. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Data/HtmlHelp/mod.rs +0 -447
  497. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Data/RightsManagement/mod.rs +0 -237
  498. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Data/mod.rs +0 -4
  499. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Devices/AllJoyn/mod.rs +0 -1273
  500. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Devices/BiometricFramework/mod.rs +0 -1481
  501. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Devices/Bluetooth/mod.rs +0 -1419
  502. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Devices/Communication/mod.rs +0 -312
  503. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Devices/DeviceAndDriverInstallation/mod.rs +0 -3969
  504. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Devices/DeviceQuery/mod.rs +0 -141
  505. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Devices/Display/mod.rs +0 -3141
  506. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Devices/Enumeration/Pnp/mod.rs +0 -96
  507. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Devices/Enumeration/mod.rs +0 -2
  508. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Devices/Fax/mod.rs +0 -1203
  509. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Devices/HumanInterfaceDevice/mod.rs +0 -3684
  510. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Devices/PortableDevices/mod.rs +0 -1999
  511. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Devices/Properties/mod.rs +0 -261
  512. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Devices/Pwm/mod.rs +0 -73
  513. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Devices/Sensors/mod.rs +0 -687
  514. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Devices/SerialCommunication/mod.rs +0 -230
  515. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Devices/Tapi/mod.rs +0 -3217
  516. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Devices/Usb/mod.rs +0 -2694
  517. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Devices/WebServicesOnDevices/mod.rs +0 -660
  518. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Devices/mod.rs +0 -36
  519. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Foundation/mod.rs +0 -10318
  520. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Gaming/mod.rs +0 -99
  521. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Globalization/mod.rs +0 -5135
  522. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Graphics/Dwm/mod.rs +0 -232
  523. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Graphics/Gdi/mod.rs +0 -3857
  524. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Graphics/GdiPlus/mod.rs +0 -2307
  525. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Graphics/Hlsl/mod.rs +0 -2
  526. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Graphics/OpenGL/mod.rs +0 -1276
  527. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Graphics/Printing/PrintTicket/mod.rs +0 -28
  528. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Graphics/Printing/mod.rs +0 -4147
  529. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Graphics/mod.rs +0 -12
  530. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Management/MobileDeviceManagementRegistration/mod.rs +0 -101
  531. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Management/mod.rs +0 -2
  532. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Media/Audio/mod.rs +0 -2052
  533. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Media/DxMediaObjects/mod.rs +0 -94
  534. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Media/KernelStreaming/mod.rs +0 -5281
  535. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Media/Multimedia/mod.rs +0 -6442
  536. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Media/Streaming/mod.rs +0 -117
  537. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Media/WindowsMediaFormat/mod.rs +0 -910
  538. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Media/mod.rs +0 -187
  539. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/NetworkManagement/Dhcp/mod.rs +0 -1926
  540. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/NetworkManagement/Dns/mod.rs +0 -1564
  541. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/NetworkManagement/InternetConnectionWizard/mod.rs +0 -22
  542. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/NetworkManagement/IpHelper/mod.rs +0 -3004
  543. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/NetworkManagement/Multicast/mod.rs +0 -59
  544. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/NetworkManagement/Ndis/mod.rs +0 -3334
  545. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/NetworkManagement/NetBios/mod.rs +0 -211
  546. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/NetworkManagement/NetManagement/mod.rs +0 -4814
  547. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/NetworkManagement/NetShell/mod.rs +0 -160
  548. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/NetworkManagement/NetworkDiagnosticsFramework/mod.rs +0 -222
  549. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/NetworkManagement/P2P/mod.rs +0 -1196
  550. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/NetworkManagement/QoS/mod.rs +0 -1447
  551. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/NetworkManagement/Rras/mod.rs +0 -3212
  552. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/NetworkManagement/Snmp/mod.rs +0 -381
  553. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/NetworkManagement/WNet/mod.rs +0 -363
  554. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/NetworkManagement/WebDav/mod.rs +0 -47
  555. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/NetworkManagement/WiFi/mod.rs +0 -4311
  556. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/NetworkManagement/WindowsConnectionManager/mod.rs +0 -119
  557. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/NetworkManagement/WindowsFilteringPlatform/mod.rs +0 -3818
  558. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/NetworkManagement/WindowsFirewall/mod.rs +0 -281
  559. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/NetworkManagement/WindowsNetworkVirtualization/mod.rs +0 -104
  560. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/NetworkManagement/mod.rs +0 -42
  561. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Networking/ActiveDirectory/mod.rs +0 -2383
  562. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Networking/Clustering/mod.rs +0 -3900
  563. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Networking/HttpServer/mod.rs +0 -1239
  564. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Networking/Ldap/mod.rs +0 -817
  565. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Networking/WebSocket/mod.rs +0 -88
  566. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Networking/WinHttp/mod.rs +0 -1109
  567. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Networking/WinInet/mod.rs +0 -2168
  568. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Networking/WinSock/mod.rs +0 -4786
  569. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Networking/WindowsWebServices/mod.rs +0 -3480
  570. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Networking/mod.rs +0 -18
  571. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Security/AppLocker/mod.rs +0 -172
  572. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Security/Authentication/Identity/mod.rs +0 -5701
  573. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Security/Authentication/mod.rs +0 -2
  574. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Security/Authorization/mod.rs +0 -984
  575. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Security/Credentials/mod.rs +0 -797
  576. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Security/Cryptography/Catalog/mod.rs +0 -151
  577. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Security/Cryptography/Certificates/mod.rs +0 -2315
  578. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Security/Cryptography/Sip/mod.rs +0 -155
  579. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Security/Cryptography/UI/mod.rs +0 -545
  580. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Security/Cryptography/mod.rs +0 -8528
  581. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Security/DiagnosticDataQuery/mod.rs +0 -156
  582. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Security/DirectoryServices/mod.rs +0 -19
  583. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Security/EnterpriseData/mod.rs +0 -36
  584. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Security/ExtensibleAuthenticationProtocol/mod.rs +0 -998
  585. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Security/Isolation/mod.rs +0 -20
  586. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Security/LicenseProtection/mod.rs +0 -8
  587. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Security/NetworkAccessProtection/mod.rs +0 -149
  588. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Security/WinTrust/mod.rs +0 -863
  589. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Security/WinWlx/mod.rs +0 -335
  590. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Security/mod.rs +0 -1156
  591. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Storage/Cabinets/mod.rs +0 -209
  592. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Storage/CloudFilters/mod.rs +0 -666
  593. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Storage/Compression/mod.rs +0 -36
  594. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Storage/DistributedFileSystem/mod.rs +0 -342
  595. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Storage/FileHistory/mod.rs +0 -97
  596. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Storage/FileSystem/mod.rs +0 -3699
  597. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Storage/Imapi/mod.rs +0 -697
  598. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Storage/IndexServer/mod.rs +0 -279
  599. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Storage/InstallableFileSystems/mod.rs +0 -331
  600. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Storage/IscsiDisc/mod.rs +0 -1291
  601. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Storage/Jet/mod.rs +0 -2593
  602. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Storage/Nvme/mod.rs +0 -3428
  603. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Storage/OfflineFiles/mod.rs +0 -276
  604. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Storage/OperationRecorder/mod.rs +0 -20
  605. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Storage/Packaging/Appx/mod.rs +0 -377
  606. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Storage/Packaging/mod.rs +0 -2
  607. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Storage/ProjectedFileSystem/mod.rs +0 -246
  608. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Storage/StructuredStorage/mod.rs +0 -3
  609. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Storage/Vhd/mod.rs +0 -720
  610. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Storage/Xps/mod.rs +0 -415
  611. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Storage/mod.rs +0 -38
  612. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/AddressBook/mod.rs +0 -938
  613. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Antimalware/mod.rs +0 -112
  614. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/ApplicationInstallationAndServicing/mod.rs +0 -2145
  615. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/ApplicationVerifier/mod.rs +0 -58
  616. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/ClrHosting/mod.rs +0 -322
  617. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Com/Marshal/mod.rs +0 -172
  618. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Com/StructuredStorage/mod.rs +0 -655
  619. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Com/Urlmon/mod.rs +0 -905
  620. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Com/mod.rs +0 -1227
  621. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/ComponentServices/mod.rs +0 -574
  622. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Console/mod.rs +0 -373
  623. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/CorrelationVector/mod.rs +0 -15
  624. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/DataExchange/mod.rs +0 -428
  625. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/DeploymentServices/mod.rs +0 -565
  626. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/DeveloperLicensing/mod.rs +0 -3
  627. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Diagnostics/Ceip/mod.rs +0 -1
  628. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Diagnostics/Debug/Extensions/mod.rs +0 -3710
  629. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Diagnostics/Debug/mod.rs +0 -5557
  630. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Diagnostics/Etw/mod.rs +0 -2042
  631. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Diagnostics/ProcessSnapshotting/mod.rs +0 -293
  632. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Diagnostics/ToolHelp/mod.rs +0 -119
  633. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Diagnostics/TraceLogging/mod.rs +0 -105
  634. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Diagnostics/mod.rs +0 -12
  635. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/DistributedTransactionCoordinator/mod.rs +0 -308
  636. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Environment/mod.rs +0 -202
  637. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/ErrorReporting/mod.rs +0 -393
  638. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/EventCollector/mod.rs +0 -117
  639. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/EventLog/mod.rs +0 -379
  640. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/EventNotificationService/mod.rs +0 -35
  641. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/GroupPolicy/mod.rs +0 -424
  642. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/HostCompute/mod.rs +0 -1
  643. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/HostComputeNetwork/mod.rs +0 -86
  644. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/HostComputeSystem/mod.rs +0 -171
  645. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Hypervisor/mod.rs +0 -1983
  646. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/IO/mod.rs +0 -53
  647. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Iis/mod.rs +0 -1411
  648. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Ioctl/mod.rs +0 -6216
  649. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/JobObjects/mod.rs +0 -434
  650. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Js/mod.rs +0 -154
  651. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Kernel/mod.rs +0 -295
  652. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/LibraryLoader/mod.rs +0 -106
  653. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Mailslots/mod.rs +0 -6
  654. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Mapi/mod.rs +0 -150
  655. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Memory/NonVolatile/mod.rs +0 -20
  656. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Memory/mod.rs +0 -464
  657. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/MessageQueuing/mod.rs +0 -712
  658. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/MixedReality/mod.rs +0 -14
  659. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Ole/mod.rs +0 -2599
  660. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/PasswordManagement/mod.rs +0 -22
  661. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Performance/HardwareCounterProfiling/mod.rs +0 -27
  662. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Performance/mod.rs +0 -1091
  663. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Pipes/mod.rs +0 -42
  664. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Power/mod.rs +0 -1413
  665. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/ProcessStatus/mod.rs +0 -200
  666. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Recovery/mod.rs +0 -15
  667. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Registry/mod.rs +0 -1114
  668. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/RemoteDesktop/mod.rs +0 -1771
  669. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/RemoteManagement/mod.rs +0 -935
  670. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/RestartManager/mod.rs +0 -86
  671. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Restore/mod.rs +0 -66
  672. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Rpc/mod.rs +0 -2668
  673. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Search/Common/mod.rs +0 -21
  674. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Search/mod.rs +0 -5993
  675. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/SecurityCenter/mod.rs +0 -41
  676. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Services/mod.rs +0 -587
  677. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/SetupAndMigration/mod.rs +0 -4
  678. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Shutdown/mod.rs +0 -111
  679. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/StationsAndDesktops/mod.rs +0 -99
  680. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/SubsystemForLinux/mod.rs +0 -12
  681. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/SystemInformation/mod.rs +0 -751
  682. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/SystemServices/mod.rs +0 -4541
  683. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Threading/mod.rs +0 -1148
  684. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Time/mod.rs +0 -50
  685. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/TpmBaseServices/mod.rs +0 -89
  686. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/UserAccessLogging/mod.rs +0 -17
  687. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Variant/mod.rs +0 -321
  688. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/VirtualDosMachines/mod.rs +0 -297
  689. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/WindowsProgramming/mod.rs +0 -1633
  690. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/Wmi/mod.rs +0 -2435
  691. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/System/mod.rs +0 -132
  692. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/UI/Accessibility/mod.rs +0 -1788
  693. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/UI/ColorSystem/mod.rs +0 -702
  694. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/UI/Controls/Dialogs/mod.rs +0 -1128
  695. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/UI/Controls/mod.rs +0 -7276
  696. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/UI/HiDpi/mod.rs +0 -66
  697. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/UI/Input/Ime/mod.rs +0 -1394
  698. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/UI/Input/KeyboardAndMouse/mod.rs +0 -765
  699. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/UI/Input/Pointer/mod.rs +0 -168
  700. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/UI/Input/Touch/mod.rs +0 -89
  701. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/UI/Input/XboxController/mod.rs +0 -151
  702. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/UI/Input/mod.rs +0 -182
  703. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/UI/InteractionContext/mod.rs +0 -230
  704. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/UI/Magnification/mod.rs +0 -52
  705. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/UI/Shell/Common/mod.rs +0 -104
  706. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/UI/Shell/PropertiesSystem/mod.rs +0 -322
  707. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/UI/Shell/mod.rs +0 -6704
  708. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/UI/TabletPC/mod.rs +0 -1537
  709. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/UI/TextServices/mod.rs +0 -794
  710. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/UI/WindowsAndMessaging/mod.rs +0 -3760
  711. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/UI/mod.rs +0 -22
  712. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Web/InternetExplorer/mod.rs +0 -628
  713. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/Web/mod.rs +0 -2
  714. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/Win32/mod.rs +0 -30
  715. data/ext/cargo-vendor/windows-sys-0.59.0/src/Windows/mod.rs +0 -4
  716. data/ext/cargo-vendor/windows-sys-0.59.0/src/core/literals.rs +0 -114
  717. data/ext/cargo-vendor/windows-sys-0.59.0/src/core/mod.rs +0 -33
  718. data/ext/cargo-vendor/windows-sys-0.59.0/src/includes/Win32/UI/WindowsAndMessaging/WindowLong.rs +0 -8
  719. data/ext/cargo-vendor/windows-sys-0.59.0/src/lib.rs +0 -17
  720. /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/.github/workflows/audit.yml +0 -0
  721. /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/.github/workflows/ci.yml +0 -0
  722. /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/.github/workflows/dotslash-config.json +0 -0
  723. /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/.rustfmt.toml +0 -0
  724. /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/.rusty-hook.toml +0 -0
  725. /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/dev/run_benchmarks_for_file.sh +0 -0
  726. /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/src/cache/mod.rs +0 -0
  727. /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/src/cache/noop.rs +0 -0
  728. /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/src/ownership/file_owner_finder.rs +0 -0
  729. /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/src/ownership/mapper/directory_mapper.rs +0 -0
  730. /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/src/ownership/mapper/escaper.rs +0 -0
  731. /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/src/ownership/mapper/team_gem_mapper.rs +0 -0
  732. /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/src/ownership/mapper/team_glob_mapper.rs +0 -0
  733. /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/src/ownership/mapper/team_yml_mapper.rs +0 -0
  734. /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/cache_test.rs +0 -0
  735. /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/invalid_project/.github/CODEOWNERS +0 -0
  736. /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/invalid_project/config/code_ownership.yml +0 -0
  737. /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/invalid_project/config/teams/payments.yml +0 -0
  738. /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/invalid_project/config/teams/payroll.yml +0 -0
  739. /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/invalid_project/gems/payroll_calculator/calculator.rb +0 -0
  740. /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/invalid_project/ruby/app/models/bank_account.rb +0 -0
  741. /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/invalid_project/ruby/app/models/blockchain.rb +0 -0
  742. /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/invalid_project/ruby/app/models/payroll.rb +0 -0
  743. /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/invalid_project/ruby/app/payments/nacha.rb +0 -0
  744. /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/invalid_project/ruby/app/services/.codeowner +0 -0
  745. /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/invalid_project/ruby/app/services/multi_owned.rb +0 -0
  746. /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/invalid_project/ruby/app/unowned.rb +0 -0
  747. /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/invalid_project/ruby/packages/payroll_flow/package.yml +0 -0
  748. /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/multiple-directory-owners/.github/CODEOWNERS +0 -0
  749. /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/multiple-directory-owners/app/consumers/.codeowner +0 -0
  750. /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
  751. /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/multiple-directory-owners/app/consumers/one_owner.rb +0 -0
  752. /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/multiple-directory-owners/app/services/.codeowner +0 -0
  753. /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/multiple-directory-owners/app/services/exciting/.codeowner +0 -0
  754. /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
  755. /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/multiple-directory-owners/config/teams/bar.yml +0 -0
  756. /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/multiple-directory-owners/config/teams/foo.yml +0 -0
  757. /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/valid_project/.ignore +0 -0
  758. /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/valid_project/config/teams/payments.yml +0 -0
  759. /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/valid_project/config/teams/payroll.yml +0 -0
  760. /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/valid_project/config/teams/ux.yml +0 -0
  761. /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/valid_project/gems/payroll_calculator/calculator.rb +0 -0
  762. /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/valid_project/gems/pets/dog.rb +0 -0
  763. /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/valid_project/javascript/packages/PayrollFlow/index.tsx +0 -0
  764. /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/valid_project/javascript/packages/PayrollFlow/package.json +0 -0
  765. /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/valid_project/javascript/packages/items/(special)/.codeowner +0 -0
  766. /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/valid_project/javascript/packages/items/(special)/pay.ts +0 -0
  767. /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/valid_project/javascript/packages/items/.codeowner +0 -0
  768. /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/valid_project/javascript/packages/items/item.ts +0 -0
  769. /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/valid_project/ruby/app/models/bank_account.rb +0 -0
  770. /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/valid_project/ruby/app/payments/foo/.codeowner +0 -0
  771. /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
  772. /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/valid_project/ruby/app/payments/nacha.rb +0 -0
  773. /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/valid_project/ruby/app/payroll/.codeowner +0 -0
  774. /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/valid_project/ruby/app/payroll/payroll.rb +0 -0
  775. /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/valid_project/ruby/ignored_files/git_ignored.rb +0 -0
  776. /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/fixtures/valid_project/ruby/packages/payroll_flow/package.yml +0 -0
  777. /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
  778. /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
  779. /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/git_stage_test.rs +0 -0
  780. /data/ext/cargo-vendor/{codeowners-0.2.7 → codeowners-0.2.17}/tests/invalid_project_structure_test.rs +0 -0
  781. /data/ext/cargo-vendor/{glob-0.3.2 → glob-0.3.3}/.github/dependabot.yml +0 -0
  782. /data/ext/cargo-vendor/{glob-0.3.2 → glob-0.3.3}/.github/workflows/publish.yml +0 -0
  783. /data/ext/cargo-vendor/{glob-0.3.2 → glob-0.3.3}/LICENSE-APACHE +0 -0
  784. /data/ext/cargo-vendor/{glob-0.3.2 → glob-0.3.3}/LICENSE-MIT +0 -0
  785. /data/ext/cargo-vendor/{glob-0.3.2 → glob-0.3.3}/triagebot.toml +0 -0
  786. /data/ext/cargo-vendor/{indexmap-2.10.0 → indexmap-2.11.0}/.rustfmt.toml +0 -0
  787. /data/ext/cargo-vendor/{indexmap-2.10.0 → indexmap-2.11.0}/LICENSE-APACHE +0 -0
  788. /data/ext/cargo-vendor/{indexmap-2.10.0 → indexmap-2.11.0}/LICENSE-MIT +0 -0
  789. /data/ext/cargo-vendor/{indexmap-2.10.0 → indexmap-2.11.0}/README.md +0 -0
  790. /data/ext/cargo-vendor/{indexmap-2.10.0 → indexmap-2.11.0}/benches/bench.rs +0 -0
  791. /data/ext/cargo-vendor/{indexmap-2.10.0 → indexmap-2.11.0}/benches/faststring.rs +0 -0
  792. /data/ext/cargo-vendor/{indexmap-2.10.0 → indexmap-2.11.0}/src/arbitrary.rs +0 -0
  793. /data/ext/cargo-vendor/{indexmap-2.10.0 → indexmap-2.11.0}/src/borsh.rs +0 -0
  794. /data/ext/cargo-vendor/{indexmap-2.10.0 → indexmap-2.11.0}/src/macros.rs +0 -0
  795. /data/ext/cargo-vendor/{indexmap-2.10.0 → indexmap-2.11.0}/src/map/core/extract.rs +0 -0
  796. /data/ext/cargo-vendor/{indexmap-2.10.0 → indexmap-2.11.0}/src/map/core/raw_entry_v1.rs +0 -0
  797. /data/ext/cargo-vendor/{indexmap-2.10.0 → indexmap-2.11.0}/src/map/iter.rs +0 -0
  798. /data/ext/cargo-vendor/{indexmap-2.10.0 → indexmap-2.11.0}/src/map/serde_seq.rs +0 -0
  799. /data/ext/cargo-vendor/{indexmap-2.10.0 → indexmap-2.11.0}/src/rayon/mod.rs +0 -0
  800. /data/ext/cargo-vendor/{indexmap-2.10.0 → indexmap-2.11.0}/src/serde.rs +0 -0
  801. /data/ext/cargo-vendor/{indexmap-2.10.0 → indexmap-2.11.0}/src/set/iter.rs +0 -0
  802. /data/ext/cargo-vendor/{indexmap-2.10.0 → indexmap-2.11.0}/src/util.rs +0 -0
  803. /data/ext/cargo-vendor/{indexmap-2.10.0 → indexmap-2.11.0}/tests/equivalent_trait.rs +0 -0
  804. /data/ext/cargo-vendor/{indexmap-2.10.0 → indexmap-2.11.0}/tests/macros_full_path.rs +0 -0
  805. /data/ext/cargo-vendor/{indexmap-2.10.0 → indexmap-2.11.0}/tests/tests.rs +0 -0
  806. /data/ext/cargo-vendor/{rayon-1.10.0 → rayon-1.11.0}/LICENSE-APACHE +0 -0
  807. /data/ext/cargo-vendor/{rayon-1.10.0 → rayon-1.11.0}/LICENSE-MIT +0 -0
  808. /data/ext/cargo-vendor/{rayon-1.10.0 → rayon-1.11.0}/src/compile_fail/cannot_collect_filtermap_data.rs +0 -0
  809. /data/ext/cargo-vendor/{rayon-1.10.0 → rayon-1.11.0}/src/compile_fail/cannot_zip_filtered_data.rs +0 -0
  810. /data/ext/cargo-vendor/{rayon-1.10.0 → rayon-1.11.0}/src/compile_fail/cell_par_iter.rs +0 -0
  811. /data/ext/cargo-vendor/{rayon-1.10.0 → rayon-1.11.0}/src/compile_fail/mod.rs +0 -0
  812. /data/ext/cargo-vendor/{rayon-1.10.0 → rayon-1.11.0}/src/compile_fail/must_use.rs +0 -0
  813. /data/ext/cargo-vendor/{rayon-1.10.0 → rayon-1.11.0}/src/compile_fail/no_send_par_iter.rs +0 -0
  814. /data/ext/cargo-vendor/{rayon-1.10.0 → rayon-1.11.0}/src/compile_fail/rc_par_iter.rs +0 -0
  815. /data/ext/cargo-vendor/{rayon-1.10.0 → rayon-1.11.0}/src/delegate.rs +0 -0
  816. /data/ext/cargo-vendor/{rayon-1.10.0 → rayon-1.11.0}/src/iter/collect/consumer.rs +0 -0
  817. /data/ext/cargo-vendor/{rayon-1.10.0 → rayon-1.11.0}/src/iter/extend.rs +0 -0
  818. /data/ext/cargo-vendor/{rayon-1.10.0 → rayon-1.11.0}/src/iter/find.rs +0 -0
  819. /data/ext/cargo-vendor/{rayon-1.10.0 → rayon-1.11.0}/src/iter/for_each.rs +0 -0
  820. /data/ext/cargo-vendor/{rayon-1.10.0 → rayon-1.11.0}/src/iter/noop.rs +0 -0
  821. /data/ext/cargo-vendor/{rayon-1.10.0 → rayon-1.11.0}/src/iter/plumbing/README.md +0 -0
  822. /data/ext/cargo-vendor/{rayon-1.10.0 → rayon-1.11.0}/src/iter/product.rs +0 -0
  823. /data/ext/cargo-vendor/{rayon-1.10.0 → rayon-1.11.0}/src/iter/reduce.rs +0 -0
  824. /data/ext/cargo-vendor/{rayon-1.10.0 → rayon-1.11.0}/src/iter/sum.rs +0 -0
  825. /data/ext/cargo-vendor/{rayon-1.10.0 → rayon-1.11.0}/src/iter/try_reduce.rs +0 -0
  826. /data/ext/cargo-vendor/{rayon-1.10.0 → rayon-1.11.0}/src/iter/try_reduce_with.rs +0 -0
  827. /data/ext/cargo-vendor/{rayon-1.10.0 → rayon-1.11.0}/src/par_either.rs +0 -0
  828. /data/ext/cargo-vendor/{rayon-1.10.0 → rayon-1.11.0}/src/prelude.rs +0 -0
  829. /data/ext/cargo-vendor/{rayon-1.10.0 → rayon-1.11.0}/src/private.rs +0 -0
  830. /data/ext/cargo-vendor/{rayon-1.10.0 → rayon-1.11.0}/src/split_producer.rs +0 -0
  831. /data/ext/cargo-vendor/{rayon-1.10.0 → rayon-1.11.0}/src/string.rs +0 -0
  832. /data/ext/cargo-vendor/{rayon-1.10.0 → rayon-1.11.0}/tests/chars.rs +0 -0
  833. /data/ext/cargo-vendor/{rayon-1.10.0 → rayon-1.11.0}/tests/cross-pool.rs +0 -0
  834. /data/ext/cargo-vendor/{rayon-1.10.0 → rayon-1.11.0}/tests/drain_vec.rs +0 -0
  835. /data/ext/cargo-vendor/{rayon-1.10.0 → rayon-1.11.0}/tests/intersperse.rs +0 -0
  836. /data/ext/cargo-vendor/{rayon-1.10.0 → rayon-1.11.0}/tests/issue671-unzip.rs +0 -0
  837. /data/ext/cargo-vendor/{rayon-1.10.0 → rayon-1.11.0}/tests/issue671.rs +0 -0
  838. /data/ext/cargo-vendor/{rayon-1.10.0 → rayon-1.11.0}/tests/iter_panic.rs +0 -0
  839. /data/ext/cargo-vendor/{rayon-1.10.0 → rayon-1.11.0}/tests/octillion.rs +0 -0
  840. /data/ext/cargo-vendor/{rayon-1.10.0 → rayon-1.11.0}/tests/par_bridge_recursion.rs +0 -0
  841. /data/ext/cargo-vendor/{rayon-core-1.12.1 → rayon-core-1.13.0}/LICENSE-APACHE +0 -0
  842. /data/ext/cargo-vendor/{rayon-core-1.12.1 → rayon-core-1.13.0}/LICENSE-MIT +0 -0
  843. /data/ext/cargo-vendor/{rayon-core-1.12.1 → rayon-core-1.13.0}/build.rs +0 -0
  844. /data/ext/cargo-vendor/{rayon-core-1.12.1 → rayon-core-1.13.0}/src/broadcast/test.rs +0 -0
  845. /data/ext/cargo-vendor/{rayon-core-1.12.1 → rayon-core-1.13.0}/src/compile_fail/mod.rs +0 -0
  846. /data/ext/cargo-vendor/{rayon-core-1.12.1 → rayon-core-1.13.0}/src/compile_fail/quicksort_race1.rs +0 -0
  847. /data/ext/cargo-vendor/{rayon-core-1.12.1 → rayon-core-1.13.0}/src/compile_fail/quicksort_race2.rs +0 -0
  848. /data/ext/cargo-vendor/{rayon-core-1.12.1 → rayon-core-1.13.0}/src/compile_fail/quicksort_race3.rs +0 -0
  849. /data/ext/cargo-vendor/{rayon-core-1.12.1 → rayon-core-1.13.0}/src/compile_fail/rc_return.rs +0 -0
  850. /data/ext/cargo-vendor/{rayon-core-1.12.1 → rayon-core-1.13.0}/src/compile_fail/rc_upvar.rs +0 -0
  851. /data/ext/cargo-vendor/{rayon-core-1.12.1 → rayon-core-1.13.0}/src/compile_fail/scope_join_bad.rs +0 -0
  852. /data/ext/cargo-vendor/{rayon-core-1.12.1 → rayon-core-1.13.0}/src/job.rs +0 -0
  853. /data/ext/cargo-vendor/{rayon-core-1.12.1 → rayon-core-1.13.0}/src/private.rs +0 -0
  854. /data/ext/cargo-vendor/{rayon-core-1.12.1 → rayon-core-1.13.0}/src/unwind.rs +0 -0
  855. /data/ext/cargo-vendor/{rayon-core-1.12.1 → rayon-core-1.13.0}/tests/double_init_fail.rs +0 -0
  856. /data/ext/cargo-vendor/{rayon-core-1.12.1 → rayon-core-1.13.0}/tests/init_zero_threads.rs +0 -0
  857. /data/ext/cargo-vendor/{rayon-core-1.12.1 → rayon-core-1.13.0}/tests/scope_join.rs +0 -0
  858. /data/ext/cargo-vendor/{rayon-core-1.12.1 → rayon-core-1.13.0}/tests/scoped_threadpool.rs +0 -0
  859. /data/ext/cargo-vendor/{rayon-core-1.12.1 → rayon-core-1.13.0}/tests/simple_panic.rs +0 -0
  860. /data/ext/cargo-vendor/{rayon-core-1.12.1 → rayon-core-1.13.0}/tests/stack_overflow_crash.rs +0 -0
  861. /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/CONTRIBUTING.md +0 -0
  862. /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/LICENSE-APACHE +0 -0
  863. /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/LICENSE-MIT +0 -0
  864. /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/README.md +0 -0
  865. /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/build.rs +0 -0
  866. /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/src/de.rs +0 -0
  867. /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/src/error.rs +0 -0
  868. /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/src/io/core.rs +0 -0
  869. /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/src/io/mod.rs +0 -0
  870. /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/src/iter.rs +0 -0
  871. /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/src/lexical/algorithm.rs +0 -0
  872. /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/src/lexical/bhcomp.rs +0 -0
  873. /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/src/lexical/bignum.rs +0 -0
  874. /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/src/lexical/cached.rs +0 -0
  875. /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/src/lexical/cached_float80.rs +0 -0
  876. /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/src/lexical/digit.rs +0 -0
  877. /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/src/lexical/errors.rs +0 -0
  878. /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/src/lexical/exponent.rs +0 -0
  879. /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/src/lexical/float.rs +0 -0
  880. /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/src/lexical/large_powers.rs +0 -0
  881. /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/src/lexical/large_powers32.rs +0 -0
  882. /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/src/lexical/large_powers64.rs +0 -0
  883. /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/src/lexical/math.rs +0 -0
  884. /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/src/lexical/mod.rs +0 -0
  885. /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/src/lexical/num.rs +0 -0
  886. /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/src/lexical/parse.rs +0 -0
  887. /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/src/lexical/rounding.rs +0 -0
  888. /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/src/lexical/shift.rs +0 -0
  889. /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/src/lexical/small_powers.rs +0 -0
  890. /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/src/macros.rs +0 -0
  891. /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/src/number.rs +0 -0
  892. /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/src/raw.rs +0 -0
  893. /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/src/read.rs +0 -0
  894. /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/src/value/from.rs +0 -0
  895. /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/src/value/index.rs +0 -0
  896. /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/src/value/mod.rs +0 -0
  897. /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/src/value/partial_eq.rs +0 -0
  898. /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/src/value/ser.rs +0 -0
  899. /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/tests/compiletest.rs +0 -0
  900. /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/tests/debug.rs +0 -0
  901. /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/tests/lexical/algorithm.rs +0 -0
  902. /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/tests/lexical/exponent.rs +0 -0
  903. /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/tests/lexical/float.rs +0 -0
  904. /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/tests/lexical/math.rs +0 -0
  905. /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/tests/lexical/num.rs +0 -0
  906. /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/tests/lexical/parse.rs +0 -0
  907. /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/tests/lexical/rounding.rs +0 -0
  908. /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/tests/lexical.rs +0 -0
  909. /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/tests/macros/mod.rs +0 -0
  910. /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/tests/map.rs +0 -0
  911. /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/tests/regression/issue1004.rs +0 -0
  912. /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/tests/regression/issue520.rs +0 -0
  913. /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/tests/regression/issue795.rs +0 -0
  914. /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/tests/regression/issue845.rs +0 -0
  915. /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/tests/regression/issue953.rs +0 -0
  916. /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/tests/regression.rs +0 -0
  917. /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/tests/stream.rs +0 -0
  918. /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/tests/test.rs +0 -0
  919. /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/tests/ui/missing_colon.rs +0 -0
  920. /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/tests/ui/missing_colon.stderr +0 -0
  921. /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/tests/ui/missing_comma.rs +0 -0
  922. /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/tests/ui/missing_comma.stderr +0 -0
  923. /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/tests/ui/missing_value.rs +0 -0
  924. /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/tests/ui/missing_value.stderr +0 -0
  925. /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/tests/ui/not_found.rs +0 -0
  926. /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/tests/ui/not_found.stderr +0 -0
  927. /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/tests/ui/parse_expr.rs +0 -0
  928. /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/tests/ui/parse_expr.stderr +0 -0
  929. /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/tests/ui/parse_key.rs +0 -0
  930. /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/tests/ui/parse_key.stderr +0 -0
  931. /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/tests/ui/unexpected_after_array_element.rs +0 -0
  932. /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/tests/ui/unexpected_after_array_element.stderr +0 -0
  933. /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/tests/ui/unexpected_after_map_entry.rs +0 -0
  934. /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/tests/ui/unexpected_after_map_entry.stderr +0 -0
  935. /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/tests/ui/unexpected_colon.rs +0 -0
  936. /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/tests/ui/unexpected_colon.stderr +0 -0
  937. /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/tests/ui/unexpected_comma.rs +0 -0
  938. /data/ext/cargo-vendor/{serde_json-1.0.142 → serde_json-1.0.143}/tests/ui/unexpected_comma.stderr +0 -0
  939. /data/ext/cargo-vendor/{tempfile-3.20.0 → tempfile-3.21.0}/.github/dependabot.yml +0 -0
  940. /data/ext/cargo-vendor/{tempfile-3.20.0 → tempfile-3.21.0}/LICENSE-APACHE +0 -0
  941. /data/ext/cargo-vendor/{tempfile-3.20.0 → tempfile-3.21.0}/LICENSE-MIT +0 -0
  942. /data/ext/cargo-vendor/{tempfile-3.20.0 → tempfile-3.21.0}/README.md +0 -0
  943. /data/ext/cargo-vendor/{tempfile-3.20.0 → tempfile-3.21.0}/deny.toml +0 -0
  944. /data/ext/cargo-vendor/{tempfile-3.20.0 → tempfile-3.21.0}/src/dir/imp/any.rs +0 -0
  945. /data/ext/cargo-vendor/{tempfile-3.20.0 → tempfile-3.21.0}/src/dir/imp/mod.rs +0 -0
  946. /data/ext/cargo-vendor/{tempfile-3.20.0 → tempfile-3.21.0}/src/dir/imp/unix.rs +0 -0
  947. /data/ext/cargo-vendor/{tempfile-3.20.0 → tempfile-3.21.0}/src/dir/mod.rs +0 -0
  948. /data/ext/cargo-vendor/{tempfile-3.20.0 → tempfile-3.21.0}/src/env.rs +0 -0
  949. /data/ext/cargo-vendor/{tempfile-3.20.0 → tempfile-3.21.0}/src/error.rs +0 -0
  950. /data/ext/cargo-vendor/{tempfile-3.20.0 → tempfile-3.21.0}/src/file/imp/mod.rs +0 -0
  951. /data/ext/cargo-vendor/{tempfile-3.20.0 → tempfile-3.21.0}/src/file/imp/other.rs +0 -0
  952. /data/ext/cargo-vendor/{tempfile-3.20.0 → tempfile-3.21.0}/src/file/imp/unix.rs +0 -0
  953. /data/ext/cargo-vendor/{tempfile-3.20.0 → tempfile-3.21.0}/src/file/imp/windows.rs +0 -0
  954. /data/ext/cargo-vendor/{tempfile-3.20.0 → tempfile-3.21.0}/src/file/mod.rs +0 -0
  955. /data/ext/cargo-vendor/{tempfile-3.20.0 → tempfile-3.21.0}/src/lib.rs +0 -0
  956. /data/ext/cargo-vendor/{tempfile-3.20.0 → tempfile-3.21.0}/src/spooled.rs +0 -0
  957. /data/ext/cargo-vendor/{tempfile-3.20.0 → tempfile-3.21.0}/src/util.rs +0 -0
  958. /data/ext/cargo-vendor/{tempfile-3.20.0 → tempfile-3.21.0}/tests/env.rs +0 -0
  959. /data/ext/cargo-vendor/{tempfile-3.20.0 → tempfile-3.21.0}/tests/namedtempfile.rs +0 -0
  960. /data/ext/cargo-vendor/{tempfile-3.20.0 → tempfile-3.21.0}/tests/spooled.rs +0 -0
  961. /data/ext/cargo-vendor/{tempfile-3.20.0 → tempfile-3.21.0}/tests/tempdir.rs +0 -0
  962. /data/ext/cargo-vendor/{tempfile-3.20.0 → tempfile-3.21.0}/tests/tempfile.rs +0 -0
  963. /data/ext/cargo-vendor/{winapi-util-0.1.9 → winapi-util-0.1.10}/.github/workflows/ci.yml +0 -0
  964. /data/ext/cargo-vendor/{winapi-util-0.1.9 → winapi-util-0.1.10}/COPYING +0 -0
  965. /data/ext/cargo-vendor/{winapi-util-0.1.9 → winapi-util-0.1.10}/LICENSE-MIT +0 -0
  966. /data/ext/cargo-vendor/{winapi-util-0.1.9 → winapi-util-0.1.10}/README.md +0 -0
  967. /data/ext/cargo-vendor/{winapi-util-0.1.9 → winapi-util-0.1.10}/UNLICENSE +0 -0
  968. /data/ext/cargo-vendor/{winapi-util-0.1.9 → winapi-util-0.1.10}/rustfmt.toml +0 -0
  969. /data/ext/cargo-vendor/{winapi-util-0.1.9 → winapi-util-0.1.10}/src/console.rs +0 -0
  970. /data/ext/cargo-vendor/{winapi-util-0.1.9 → winapi-util-0.1.10}/src/file.rs +0 -0
  971. /data/ext/cargo-vendor/{winapi-util-0.1.9 → winapi-util-0.1.10}/src/lib.rs +0 -0
  972. /data/ext/cargo-vendor/{winapi-util-0.1.9 → winapi-util-0.1.10}/src/sysinfo.rs +0 -0
  973. /data/ext/cargo-vendor/{winapi-util-0.1.9 → winapi-util-0.1.10}/src/win.rs +0 -0
@@ -0,0 +1,1511 @@
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
+ #![allow(clippy::while_let_loop)]
65
+
66
+ #[cfg(test)]
67
+ #[macro_use]
68
+ extern crate doc_comment;
69
+
70
+ #[cfg(test)]
71
+ doctest!("../README.md");
72
+
73
+ use std::cmp;
74
+ use std::cmp::Ordering;
75
+ use std::error::Error;
76
+ use std::fmt;
77
+ use std::fs;
78
+ use std::fs::DirEntry;
79
+ use std::io;
80
+ use std::ops::Deref;
81
+ use std::path::{self, Component, Path, PathBuf};
82
+ use std::str::FromStr;
83
+
84
+ use CharSpecifier::{CharRange, SingleChar};
85
+ use MatchResult::{EntirePatternDoesntMatch, Match, SubPatternDoesntMatch};
86
+ use PatternToken::AnyExcept;
87
+ use PatternToken::{AnyChar, AnyRecursiveSequence, AnySequence, AnyWithin, Char};
88
+
89
+ /// An iterator that yields `Path`s from the filesystem that match a particular
90
+ /// pattern.
91
+ ///
92
+ /// Note that it yields `GlobResult` in order to report any `IoErrors` that may
93
+ /// arise during iteration. If a directory matches but is unreadable,
94
+ /// thereby preventing its contents from being checked for matches, a
95
+ /// `GlobError` is returned to express this.
96
+ ///
97
+ /// See the `glob` function for more details.
98
+ #[derive(Debug)]
99
+ pub struct Paths {
100
+ dir_patterns: Vec<Pattern>,
101
+ require_dir: bool,
102
+ options: MatchOptions,
103
+ todo: Vec<Result<(PathWrapper, usize), GlobError>>,
104
+ scope: Option<PathWrapper>,
105
+ }
106
+
107
+ /// Return an iterator that produces all the `Path`s that match the given
108
+ /// pattern using default match options, which may be absolute or relative to
109
+ /// the current working directory.
110
+ ///
111
+ /// This may return an error if the pattern is invalid.
112
+ ///
113
+ /// This method uses the default match options and is equivalent to calling
114
+ /// `glob_with(pattern, MatchOptions::new())`. Use `glob_with` directly if you
115
+ /// want to use non-default match options.
116
+ ///
117
+ /// When iterating, each result is a `GlobResult` which expresses the
118
+ /// possibility that there was an `IoError` when attempting to read the contents
119
+ /// of the matched path. In other words, each item returned by the iterator
120
+ /// will either be an `Ok(Path)` if the path matched, or an `Err(GlobError)` if
121
+ /// the path (partially) matched _but_ its contents could not be read in order
122
+ /// to determine if its contents matched.
123
+ ///
124
+ /// See the `Paths` documentation for more information.
125
+ ///
126
+ /// # Examples
127
+ ///
128
+ /// Consider a directory `/media/pictures` containing only the files
129
+ /// `kittens.jpg`, `puppies.jpg` and `hamsters.gif`:
130
+ ///
131
+ /// ```rust,no_run
132
+ /// use glob::glob;
133
+ ///
134
+ /// for entry in glob("/media/pictures/*.jpg").unwrap() {
135
+ /// match entry {
136
+ /// Ok(path) => println!("{:?}", path.display()),
137
+ ///
138
+ /// // if the path matched but was unreadable,
139
+ /// // thereby preventing its contents from matching
140
+ /// Err(e) => println!("{:?}", e),
141
+ /// }
142
+ /// }
143
+ /// ```
144
+ ///
145
+ /// The above code will print:
146
+ ///
147
+ /// ```ignore
148
+ /// /media/pictures/kittens.jpg
149
+ /// /media/pictures/puppies.jpg
150
+ /// ```
151
+ ///
152
+ /// If you want to ignore unreadable paths, you can use something like
153
+ /// `filter_map`:
154
+ ///
155
+ /// ```rust
156
+ /// use glob::glob;
157
+ /// use std::result::Result;
158
+ ///
159
+ /// for path in glob("/media/pictures/*.jpg").unwrap().filter_map(Result::ok) {
160
+ /// println!("{}", path.display());
161
+ /// }
162
+ /// ```
163
+ /// Paths are yielded in alphabetical order.
164
+ pub fn glob(pattern: &str) -> Result<Paths, PatternError> {
165
+ glob_with(pattern, MatchOptions::new())
166
+ }
167
+
168
+ /// Return an iterator that produces all the `Path`s that match the given
169
+ /// pattern using the specified match options, which may be absolute or relative
170
+ /// to the current working directory.
171
+ ///
172
+ /// This may return an error if the pattern is invalid.
173
+ ///
174
+ /// This function accepts Unix shell style patterns as described by
175
+ /// `Pattern::new(..)`. The options given are passed through unchanged to
176
+ /// `Pattern::matches_with(..)` with the exception that
177
+ /// `require_literal_separator` is always set to `true` regardless of the value
178
+ /// passed to this function.
179
+ ///
180
+ /// Paths are yielded in alphabetical order.
181
+ pub fn glob_with(pattern: &str, options: MatchOptions) -> Result<Paths, PatternError> {
182
+ #[cfg(windows)]
183
+ fn check_windows_verbatim(p: &Path) -> bool {
184
+ match p.components().next() {
185
+ Some(Component::Prefix(ref p)) => {
186
+ // Allow VerbatimDisk paths. std canonicalize() generates them, and they work fine
187
+ p.kind().is_verbatim()
188
+ && if let std::path::Prefix::VerbatimDisk(_) = p.kind() {
189
+ false
190
+ } else {
191
+ true
192
+ }
193
+ }
194
+ _ => false,
195
+ }
196
+ }
197
+ #[cfg(not(windows))]
198
+ fn check_windows_verbatim(_: &Path) -> bool {
199
+ false
200
+ }
201
+
202
+ #[cfg(windows)]
203
+ fn to_scope(p: &Path) -> PathBuf {
204
+ // FIXME handle volume relative paths here
205
+ p.to_path_buf()
206
+ }
207
+ #[cfg(not(windows))]
208
+ fn to_scope(p: &Path) -> PathBuf {
209
+ p.to_path_buf()
210
+ }
211
+
212
+ // make sure that the pattern is valid first, else early return with error
213
+ let _ = Pattern::new(pattern)?;
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
+ has_metachars: false,
263
+ });
264
+ }
265
+
266
+ let last_is_separator = pattern.chars().next_back().map(path::is_separator);
267
+ let require_dir = last_is_separator == Some(true);
268
+ let todo = Vec::new();
269
+
270
+ Ok(Paths {
271
+ dir_patterns,
272
+ require_dir,
273
+ options,
274
+ todo,
275
+ scope: Some(scope),
276
+ })
277
+ }
278
+
279
+ /// A glob iteration error.
280
+ ///
281
+ /// This is typically returned when a particular path cannot be read
282
+ /// to determine if its contents match the glob pattern. This is possible
283
+ /// if the program lacks the appropriate permissions, for example.
284
+ #[derive(Debug)]
285
+ pub struct GlobError {
286
+ path: PathBuf,
287
+ error: io::Error,
288
+ }
289
+
290
+ impl GlobError {
291
+ /// The Path that the error corresponds to.
292
+ pub fn path(&self) -> &Path {
293
+ &self.path
294
+ }
295
+
296
+ /// The error in question.
297
+ pub fn error(&self) -> &io::Error {
298
+ &self.error
299
+ }
300
+
301
+ /// Consumes self, returning the _raw_ underlying `io::Error`
302
+ pub fn into_error(self) -> io::Error {
303
+ self.error
304
+ }
305
+ }
306
+
307
+ impl Error for GlobError {
308
+ #[allow(deprecated)]
309
+ fn description(&self) -> &str {
310
+ self.error.description()
311
+ }
312
+
313
+ #[allow(unknown_lints, bare_trait_objects)]
314
+ fn cause(&self) -> Option<&Error> {
315
+ Some(&self.error)
316
+ }
317
+ }
318
+
319
+ impl fmt::Display for GlobError {
320
+ fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
321
+ write!(
322
+ f,
323
+ "attempting to read `{}` resulted in an error: {}",
324
+ self.path.display(),
325
+ self.error
326
+ )
327
+ }
328
+ }
329
+
330
+ #[derive(Debug)]
331
+ struct PathWrapper {
332
+ path: PathBuf,
333
+ is_directory: bool,
334
+ }
335
+
336
+ impl PathWrapper {
337
+ fn from_dir_entry(path: PathBuf, e: DirEntry) -> Self {
338
+ let is_directory = e
339
+ .file_type()
340
+ .ok()
341
+ .and_then(|file_type| {
342
+ // We need to use fs::metadata to resolve the actual path
343
+ // if it's a symlink.
344
+ if file_type.is_symlink() {
345
+ None
346
+ } else {
347
+ Some(file_type.is_dir())
348
+ }
349
+ })
350
+ .or_else(|| fs::metadata(&path).map(|m| m.is_dir()).ok())
351
+ .unwrap_or(false);
352
+ Self { path, is_directory }
353
+ }
354
+ fn from_path(path: PathBuf) -> Self {
355
+ let is_directory = fs::metadata(&path).map(|m| m.is_dir()).unwrap_or(false);
356
+ Self { path, is_directory }
357
+ }
358
+
359
+ fn into_path(self) -> PathBuf {
360
+ self.path
361
+ }
362
+ }
363
+
364
+ impl Deref for PathWrapper {
365
+ type Target = Path;
366
+
367
+ fn deref(&self) -> &Self::Target {
368
+ self.path.deref()
369
+ }
370
+ }
371
+
372
+ impl AsRef<Path> for PathWrapper {
373
+ fn as_ref(&self) -> &Path {
374
+ self.path.as_ref()
375
+ }
376
+ }
377
+
378
+ /// An alias for a glob iteration result.
379
+ ///
380
+ /// This represents either a matched path or a glob iteration error,
381
+ /// such as failing to read a particular directory's contents.
382
+ pub type GlobResult = Result<PathBuf, GlobError>;
383
+
384
+ impl Iterator for Paths {
385
+ type Item = GlobResult;
386
+
387
+ fn next(&mut self) -> Option<GlobResult> {
388
+ // the todo buffer hasn't been initialized yet, so it's done at this
389
+ // point rather than in glob() so that the errors are unified that is,
390
+ // failing to fill the buffer is an iteration error construction of the
391
+ // iterator (i.e. glob()) only fails if it fails to compile the Pattern
392
+ if let Some(scope) = self.scope.take() {
393
+ if !self.dir_patterns.is_empty() {
394
+ // Shouldn't happen, but we're using -1 as a special index.
395
+ assert!(self.dir_patterns.len() < usize::MAX);
396
+
397
+ fill_todo(&mut self.todo, &self.dir_patterns, 0, &scope, self.options);
398
+ }
399
+ }
400
+
401
+ loop {
402
+ if self.dir_patterns.is_empty() || self.todo.is_empty() {
403
+ return None;
404
+ }
405
+
406
+ let (path, mut idx) = match self.todo.pop().unwrap() {
407
+ Ok(pair) => pair,
408
+ Err(e) => return Some(Err(e)),
409
+ };
410
+
411
+ // idx -1: was already checked by fill_todo, maybe path was '.' or
412
+ // '..' that we can't match here because of normalization.
413
+ if idx == usize::MAX {
414
+ if self.require_dir && !path.is_directory {
415
+ continue;
416
+ }
417
+ return Some(Ok(path.into_path()));
418
+ }
419
+
420
+ if self.dir_patterns[idx].is_recursive {
421
+ let mut next = idx;
422
+
423
+ // collapse consecutive recursive patterns
424
+ while (next + 1) < self.dir_patterns.len()
425
+ && self.dir_patterns[next + 1].is_recursive
426
+ {
427
+ next += 1;
428
+ }
429
+
430
+ if path.is_directory {
431
+ // the path is a directory, so it's a match
432
+
433
+ // push this directory's contents
434
+ fill_todo(
435
+ &mut self.todo,
436
+ &self.dir_patterns,
437
+ next,
438
+ &path,
439
+ self.options,
440
+ );
441
+
442
+ if next == self.dir_patterns.len() - 1 {
443
+ // pattern ends in recursive pattern, so return this
444
+ // directory as a result
445
+ return Some(Ok(path.into_path()));
446
+ } else {
447
+ // advanced to the next pattern for this path
448
+ idx = next + 1;
449
+ }
450
+ } else if next == self.dir_patterns.len() - 1 {
451
+ // not a directory and it's the last pattern, meaning no
452
+ // match
453
+ continue;
454
+ } else {
455
+ // advanced to the next pattern for this path
456
+ idx = next + 1;
457
+ }
458
+ }
459
+
460
+ // not recursive, so match normally
461
+ if self.dir_patterns[idx].matches_with(
462
+ {
463
+ match path.file_name().and_then(|s| s.to_str()) {
464
+ // FIXME (#9639): How do we handle non-utf8 filenames?
465
+ // Ignore them for now; ideally we'd still match them
466
+ // against a *
467
+ None => continue,
468
+ Some(x) => x,
469
+ }
470
+ },
471
+ self.options,
472
+ ) {
473
+ if idx == self.dir_patterns.len() - 1 {
474
+ // it is not possible for a pattern to match a directory
475
+ // *AND* its children so we don't need to check the
476
+ // children
477
+
478
+ if !self.require_dir || path.is_directory {
479
+ return Some(Ok(path.into_path()));
480
+ }
481
+ } else {
482
+ fill_todo(
483
+ &mut self.todo,
484
+ &self.dir_patterns,
485
+ idx + 1,
486
+ &path,
487
+ self.options,
488
+ );
489
+ }
490
+ }
491
+ }
492
+ }
493
+ }
494
+
495
+ /// A pattern parsing error.
496
+ #[derive(Debug)]
497
+ #[allow(missing_copy_implementations)]
498
+ pub struct PatternError {
499
+ /// The approximate character index of where the error occurred.
500
+ pub pos: usize,
501
+
502
+ /// A message describing the error.
503
+ pub msg: &'static str,
504
+ }
505
+
506
+ impl Error for PatternError {
507
+ fn description(&self) -> &str {
508
+ self.msg
509
+ }
510
+ }
511
+
512
+ impl fmt::Display for PatternError {
513
+ fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
514
+ write!(
515
+ f,
516
+ "Pattern syntax error near position {}: {}",
517
+ self.pos, self.msg
518
+ )
519
+ }
520
+ }
521
+
522
+ /// A compiled Unix shell style pattern.
523
+ ///
524
+ /// - `?` matches any single character.
525
+ ///
526
+ /// - `*` matches any (possibly empty) sequence of characters.
527
+ ///
528
+ /// - `**` matches the current directory and arbitrary
529
+ /// subdirectories. To match files in arbitrary subdirectories, use
530
+ /// `**/*`.
531
+ ///
532
+ /// This sequence **must** form a single path component, so both
533
+ /// `**a` and `b**` are invalid and will result in an error. A
534
+ /// sequence of more than two consecutive `*` characters is also
535
+ /// invalid.
536
+ ///
537
+ /// - `[...]` matches any character inside the brackets. Character sequences
538
+ /// can also specify ranges of characters, as ordered by Unicode, so e.g.
539
+ /// `[0-9]` specifies any character between 0 and 9 inclusive. An unclosed
540
+ /// bracket is invalid.
541
+ ///
542
+ /// - `[!...]` is the negation of `[...]`, i.e. it matches any characters
543
+ /// **not** in the brackets.
544
+ ///
545
+ /// - The metacharacters `?`, `*`, `[`, `]` can be matched by using brackets
546
+ /// (e.g. `[?]`). When a `]` occurs immediately following `[` or `[!` then it
547
+ /// is interpreted as being part of, rather then ending, the character set, so
548
+ /// `]` and NOT `]` can be matched by `[]]` and `[!]]` respectively. The `-`
549
+ /// character can be specified inside a character sequence pattern by placing
550
+ /// it at the start or the end, e.g. `[abc-]`.
551
+ #[derive(Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default, Debug)]
552
+ pub struct Pattern {
553
+ original: String,
554
+ tokens: Vec<PatternToken>,
555
+ is_recursive: bool,
556
+ /// A bool value that indicates whether the pattern contains any metacharacters.
557
+ /// We use this information for some fast path optimizations.
558
+ has_metachars: bool,
559
+ }
560
+
561
+ /// Show the original glob pattern.
562
+ impl fmt::Display for Pattern {
563
+ fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
564
+ self.original.fmt(f)
565
+ }
566
+ }
567
+
568
+ impl FromStr for Pattern {
569
+ type Err = PatternError;
570
+
571
+ fn from_str(s: &str) -> Result<Self, PatternError> {
572
+ Self::new(s)
573
+ }
574
+ }
575
+
576
+ #[derive(Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Debug)]
577
+ enum PatternToken {
578
+ Char(char),
579
+ AnyChar,
580
+ AnySequence,
581
+ AnyRecursiveSequence,
582
+ AnyWithin(Vec<CharSpecifier>),
583
+ AnyExcept(Vec<CharSpecifier>),
584
+ }
585
+
586
+ #[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Debug)]
587
+ enum CharSpecifier {
588
+ SingleChar(char),
589
+ CharRange(char, char),
590
+ }
591
+
592
+ #[derive(Copy, Clone, PartialEq)]
593
+ enum MatchResult {
594
+ Match,
595
+ SubPatternDoesntMatch,
596
+ EntirePatternDoesntMatch,
597
+ }
598
+
599
+ const ERROR_WILDCARDS: &str = "wildcards are either regular `*` or recursive `**`";
600
+ const ERROR_RECURSIVE_WILDCARDS: &str = "recursive wildcards must form a single path \
601
+ component";
602
+ const ERROR_INVALID_RANGE: &str = "invalid range pattern";
603
+
604
+ impl Pattern {
605
+ /// This function compiles Unix shell style patterns.
606
+ ///
607
+ /// An invalid glob pattern will yield a `PatternError`.
608
+ pub fn new(pattern: &str) -> Result<Self, PatternError> {
609
+ let chars = pattern.chars().collect::<Vec<_>>();
610
+ let mut tokens = Vec::new();
611
+ let mut is_recursive = false;
612
+ let mut has_metachars = false;
613
+ let mut i = 0;
614
+
615
+ while i < chars.len() {
616
+ match chars[i] {
617
+ '?' => {
618
+ has_metachars = true;
619
+ tokens.push(AnyChar);
620
+ i += 1;
621
+ }
622
+ '*' => {
623
+ has_metachars = true;
624
+
625
+ let old = i;
626
+
627
+ while i < chars.len() && chars[i] == '*' {
628
+ i += 1;
629
+ }
630
+
631
+ let count = i - old;
632
+
633
+ match count.cmp(&2) {
634
+ Ordering::Greater => {
635
+ return Err(PatternError {
636
+ pos: old + 2,
637
+ msg: ERROR_WILDCARDS,
638
+ })
639
+ }
640
+ Ordering::Equal => {
641
+ // ** can only be an entire path component
642
+ // i.e. a/**/b is valid, but a**/b or a/**b is not
643
+ // invalid matches are treated literally
644
+ let is_valid = if i == 2 || path::is_separator(chars[i - count - 1]) {
645
+ // it ends in a '/'
646
+ if i < chars.len() && path::is_separator(chars[i]) {
647
+ i += 1;
648
+ true
649
+ // or the pattern ends here
650
+ // this enables the existing globbing mechanism
651
+ } else if i == chars.len() {
652
+ true
653
+ // `**` ends in non-separator
654
+ } else {
655
+ return Err(PatternError {
656
+ pos: i,
657
+ msg: ERROR_RECURSIVE_WILDCARDS,
658
+ });
659
+ }
660
+ // `**` begins with non-separator
661
+ } else {
662
+ return Err(PatternError {
663
+ pos: old - 1,
664
+ msg: ERROR_RECURSIVE_WILDCARDS,
665
+ });
666
+ };
667
+
668
+ if is_valid {
669
+ // collapse consecutive AnyRecursiveSequence to a
670
+ // single one
671
+
672
+ let tokens_len = tokens.len();
673
+
674
+ if !(tokens_len > 1
675
+ && tokens[tokens_len - 1] == AnyRecursiveSequence)
676
+ {
677
+ is_recursive = true;
678
+ tokens.push(AnyRecursiveSequence);
679
+ }
680
+ }
681
+ }
682
+ Ordering::Less => tokens.push(AnySequence),
683
+ }
684
+ }
685
+ '[' => {
686
+ has_metachars = true;
687
+
688
+ if i + 4 <= chars.len() && chars[i + 1] == '!' {
689
+ match chars[i + 3..].iter().position(|x| *x == ']') {
690
+ None => (),
691
+ Some(j) => {
692
+ let chars = &chars[i + 2..i + 3 + j];
693
+ let cs = parse_char_specifiers(chars);
694
+ tokens.push(AnyExcept(cs));
695
+ i += j + 4;
696
+ continue;
697
+ }
698
+ }
699
+ } else if i + 3 <= chars.len() && chars[i + 1] != '!' {
700
+ match chars[i + 2..].iter().position(|x| *x == ']') {
701
+ None => (),
702
+ Some(j) => {
703
+ let cs = parse_char_specifiers(&chars[i + 1..i + 2 + j]);
704
+ tokens.push(AnyWithin(cs));
705
+ i += j + 3;
706
+ continue;
707
+ }
708
+ }
709
+ }
710
+
711
+ // if we get here then this is not a valid range pattern
712
+ return Err(PatternError {
713
+ pos: i,
714
+ msg: ERROR_INVALID_RANGE,
715
+ });
716
+ }
717
+ c => {
718
+ tokens.push(Char(c));
719
+ i += 1;
720
+ }
721
+ }
722
+ }
723
+
724
+ Ok(Self {
725
+ tokens,
726
+ original: pattern.to_string(),
727
+ is_recursive,
728
+ has_metachars,
729
+ })
730
+ }
731
+
732
+ /// Escape metacharacters within the given string by surrounding them in
733
+ /// brackets. The resulting string will, when compiled into a `Pattern`,
734
+ /// match the input string and nothing else.
735
+ pub fn escape(s: &str) -> String {
736
+ let mut escaped = String::new();
737
+ for c in s.chars() {
738
+ match c {
739
+ // note that ! does not need escaping because it is only special
740
+ // inside brackets
741
+ '?' | '*' | '[' | ']' => {
742
+ escaped.push('[');
743
+ escaped.push(c);
744
+ escaped.push(']');
745
+ }
746
+ c => {
747
+ escaped.push(c);
748
+ }
749
+ }
750
+ }
751
+ escaped
752
+ }
753
+
754
+ /// Return if the given `str` matches this `Pattern` using the default
755
+ /// match options (i.e. `MatchOptions::new()`).
756
+ ///
757
+ /// # Examples
758
+ ///
759
+ /// ```rust
760
+ /// use glob::Pattern;
761
+ ///
762
+ /// assert!(Pattern::new("c?t").unwrap().matches("cat"));
763
+ /// assert!(Pattern::new("k[!e]tteh").unwrap().matches("kitteh"));
764
+ /// assert!(Pattern::new("d*g").unwrap().matches("doog"));
765
+ /// ```
766
+ pub fn matches(&self, str: &str) -> bool {
767
+ self.matches_with(str, MatchOptions::new())
768
+ }
769
+
770
+ /// Return if the given `Path`, when converted to a `str`, matches this
771
+ /// `Pattern` using the default match options (i.e. `MatchOptions::new()`).
772
+ pub fn matches_path(&self, path: &Path) -> bool {
773
+ // FIXME (#9639): This needs to handle non-utf8 paths
774
+ path.to_str().map_or(false, |s| self.matches(s))
775
+ }
776
+
777
+ /// Return if the given `str` matches this `Pattern` using the specified
778
+ /// match options.
779
+ pub fn matches_with(&self, str: &str, options: MatchOptions) -> bool {
780
+ self.matches_from(true, str.chars(), 0, options) == Match
781
+ }
782
+
783
+ /// Return if the given `Path`, when converted to a `str`, matches this
784
+ /// `Pattern` using the specified match options.
785
+ pub fn matches_path_with(&self, path: &Path, options: MatchOptions) -> bool {
786
+ // FIXME (#9639): This needs to handle non-utf8 paths
787
+ path.to_str()
788
+ .map_or(false, |s| self.matches_with(s, options))
789
+ }
790
+
791
+ /// Access the original glob pattern.
792
+ pub fn as_str(&self) -> &str {
793
+ &self.original
794
+ }
795
+
796
+ fn matches_from(
797
+ &self,
798
+ mut follows_separator: bool,
799
+ mut file: std::str::Chars,
800
+ i: usize,
801
+ options: MatchOptions,
802
+ ) -> MatchResult {
803
+ for (ti, token) in self.tokens[i..].iter().enumerate() {
804
+ match *token {
805
+ AnySequence | AnyRecursiveSequence => {
806
+ // ** must be at the start.
807
+ debug_assert!(match *token {
808
+ AnyRecursiveSequence => follows_separator,
809
+ _ => true,
810
+ });
811
+
812
+ // Empty match
813
+ match self.matches_from(follows_separator, file.clone(), i + ti + 1, options) {
814
+ SubPatternDoesntMatch => (), // keep trying
815
+ m => return m,
816
+ };
817
+
818
+ while let Some(c) = file.next() {
819
+ if follows_separator && options.require_literal_leading_dot && c == '.' {
820
+ return SubPatternDoesntMatch;
821
+ }
822
+ follows_separator = path::is_separator(c);
823
+ match *token {
824
+ AnyRecursiveSequence if !follows_separator => continue,
825
+ AnySequence
826
+ if options.require_literal_separator && follows_separator =>
827
+ {
828
+ return SubPatternDoesntMatch
829
+ }
830
+ _ => (),
831
+ }
832
+ match self.matches_from(
833
+ follows_separator,
834
+ file.clone(),
835
+ i + ti + 1,
836
+ options,
837
+ ) {
838
+ SubPatternDoesntMatch => (), // keep trying
839
+ m => return m,
840
+ }
841
+ }
842
+ }
843
+ _ => {
844
+ let c = match file.next() {
845
+ Some(c) => c,
846
+ None => return EntirePatternDoesntMatch,
847
+ };
848
+
849
+ let is_sep = path::is_separator(c);
850
+
851
+ if !match *token {
852
+ AnyChar | AnyWithin(..) | AnyExcept(..)
853
+ if (options.require_literal_separator && is_sep)
854
+ || (follows_separator
855
+ && options.require_literal_leading_dot
856
+ && c == '.') =>
857
+ {
858
+ false
859
+ }
860
+ AnyChar => true,
861
+ AnyWithin(ref specifiers) => in_char_specifiers(specifiers, c, options),
862
+ AnyExcept(ref specifiers) => !in_char_specifiers(specifiers, c, options),
863
+ Char(c2) => chars_eq(c, c2, options.case_sensitive),
864
+ AnySequence | AnyRecursiveSequence => unreachable!(),
865
+ } {
866
+ return SubPatternDoesntMatch;
867
+ }
868
+ follows_separator = is_sep;
869
+ }
870
+ }
871
+ }
872
+
873
+ // Iter is fused.
874
+ if file.next().is_none() {
875
+ Match
876
+ } else {
877
+ SubPatternDoesntMatch
878
+ }
879
+ }
880
+ }
881
+
882
+ // Fills `todo` with paths under `path` to be matched by `patterns[idx]`,
883
+ // special-casing patterns to match `.` and `..`, and avoiding `readdir()`
884
+ // calls when there are no metacharacters in the pattern.
885
+ fn fill_todo(
886
+ todo: &mut Vec<Result<(PathWrapper, usize), GlobError>>,
887
+ patterns: &[Pattern],
888
+ idx: usize,
889
+ path: &PathWrapper,
890
+ options: MatchOptions,
891
+ ) {
892
+ let add = |todo: &mut Vec<_>, next_path: PathWrapper| {
893
+ if idx + 1 == patterns.len() {
894
+ // We know it's good, so don't make the iterator match this path
895
+ // against the pattern again. In particular, it can't match
896
+ // . or .. globs since these never show up as path components.
897
+ todo.push(Ok((next_path, usize::MAX)));
898
+ } else {
899
+ fill_todo(todo, patterns, idx + 1, &next_path, options);
900
+ }
901
+ };
902
+
903
+ let pattern = &patterns[idx];
904
+ let is_dir = path.is_directory;
905
+ let curdir = path.as_ref() == Path::new(".");
906
+ match (pattern.has_metachars, is_dir) {
907
+ (false, _) => {
908
+ debug_assert!(
909
+ pattern
910
+ .tokens
911
+ .iter()
912
+ .all(|tok| matches!(tok, PatternToken::Char(_))),
913
+ "broken invariant: pattern has metachars but shouldn't"
914
+ );
915
+ let s = pattern.as_str();
916
+
917
+ // This pattern component doesn't have any metacharacters, so we
918
+ // don't need to read the current directory to know where to
919
+ // continue. So instead of passing control back to the iterator,
920
+ // we can just check for that one entry and potentially recurse
921
+ // right away.
922
+ let special = "." == s || ".." == s;
923
+ let next_path = if curdir {
924
+ PathBuf::from(s)
925
+ } else {
926
+ path.join(s)
927
+ };
928
+ let next_path = PathWrapper::from_path(next_path);
929
+ if (special && is_dir)
930
+ || (!special
931
+ && (fs::metadata(&next_path).is_ok()
932
+ || fs::symlink_metadata(&next_path).is_ok()))
933
+ {
934
+ add(todo, next_path);
935
+ }
936
+ }
937
+ (true, true) => {
938
+ let dirs = fs::read_dir(path).and_then(|d| {
939
+ d.map(|e| {
940
+ e.map(|e| {
941
+ let path = if curdir {
942
+ PathBuf::from(e.path().file_name().unwrap())
943
+ } else {
944
+ e.path()
945
+ };
946
+ PathWrapper::from_dir_entry(path, e)
947
+ })
948
+ })
949
+ .collect::<Result<Vec<_>, _>>()
950
+ });
951
+ match dirs {
952
+ Ok(mut children) => {
953
+ if options.require_literal_leading_dot {
954
+ children
955
+ .retain(|x| !x.file_name().unwrap().to_str().unwrap().starts_with('.'));
956
+ }
957
+ children.sort_by(|p1, p2| p2.file_name().cmp(&p1.file_name()));
958
+ todo.extend(children.into_iter().map(|x| Ok((x, idx))));
959
+
960
+ // Matching the special directory entries . and .. that
961
+ // refer to the current and parent directory respectively
962
+ // requires that the pattern has a leading dot, even if the
963
+ // `MatchOptions` field `require_literal_leading_dot` is not
964
+ // set.
965
+ if !pattern.tokens.is_empty() && pattern.tokens[0] == Char('.') {
966
+ for &special in &[".", ".."] {
967
+ if pattern.matches_with(special, options) {
968
+ add(todo, PathWrapper::from_path(path.join(special)));
969
+ }
970
+ }
971
+ }
972
+ }
973
+ Err(e) => {
974
+ todo.push(Err(GlobError {
975
+ path: path.to_path_buf(),
976
+ error: e,
977
+ }));
978
+ }
979
+ }
980
+ }
981
+ (true, false) => {
982
+ // not a directory, nothing more to find
983
+ }
984
+ }
985
+ }
986
+
987
+ fn parse_char_specifiers(s: &[char]) -> Vec<CharSpecifier> {
988
+ let mut cs = Vec::new();
989
+ let mut i = 0;
990
+ while i < s.len() {
991
+ if i + 3 <= s.len() && s[i + 1] == '-' {
992
+ cs.push(CharRange(s[i], s[i + 2]));
993
+ i += 3;
994
+ } else {
995
+ cs.push(SingleChar(s[i]));
996
+ i += 1;
997
+ }
998
+ }
999
+ cs
1000
+ }
1001
+
1002
+ fn in_char_specifiers(specifiers: &[CharSpecifier], c: char, options: MatchOptions) -> bool {
1003
+ for &specifier in specifiers.iter() {
1004
+ match specifier {
1005
+ SingleChar(sc) => {
1006
+ if chars_eq(c, sc, options.case_sensitive) {
1007
+ return true;
1008
+ }
1009
+ }
1010
+ CharRange(start, end) => {
1011
+ // FIXME: work with non-ascii chars properly (issue #1347)
1012
+ if !options.case_sensitive && c.is_ascii() && start.is_ascii() && end.is_ascii() {
1013
+ let start = start.to_ascii_lowercase();
1014
+ let end = end.to_ascii_lowercase();
1015
+
1016
+ let start_up = start.to_uppercase().next().unwrap();
1017
+ let end_up = end.to_uppercase().next().unwrap();
1018
+
1019
+ // only allow case insensitive matching when
1020
+ // both start and end are within a-z or A-Z
1021
+ if start != start_up && end != end_up {
1022
+ let c = c.to_ascii_lowercase();
1023
+ if c >= start && c <= end {
1024
+ return true;
1025
+ }
1026
+ }
1027
+ }
1028
+
1029
+ if c >= start && c <= end {
1030
+ return true;
1031
+ }
1032
+ }
1033
+ }
1034
+ }
1035
+
1036
+ false
1037
+ }
1038
+
1039
+ /// A helper function to determine if two chars are (possibly case-insensitively) equal.
1040
+ fn chars_eq(a: char, b: char, case_sensitive: bool) -> bool {
1041
+ if cfg!(windows) && path::is_separator(a) && path::is_separator(b) {
1042
+ true
1043
+ } else if !case_sensitive && a.is_ascii() && b.is_ascii() {
1044
+ // FIXME: work with non-ascii chars properly (issue #9084)
1045
+ a.eq_ignore_ascii_case(&b)
1046
+ } else {
1047
+ a == b
1048
+ }
1049
+ }
1050
+
1051
+ /// Configuration options to modify the behaviour of `Pattern::matches_with(..)`.
1052
+ #[allow(missing_copy_implementations)]
1053
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
1054
+ pub struct MatchOptions {
1055
+ /// Whether or not patterns should be matched in a case-sensitive manner.
1056
+ /// This currently only considers upper/lower case relationships between
1057
+ /// ASCII characters, but in future this might be extended to work with
1058
+ /// Unicode.
1059
+ pub case_sensitive: bool,
1060
+
1061
+ /// Whether or not path-component separator characters (e.g. `/` on
1062
+ /// Posix) must be matched by a literal `/`, rather than by `*` or `?` or
1063
+ /// `[...]`.
1064
+ pub require_literal_separator: bool,
1065
+
1066
+ /// Whether or not paths that contain components that start with a `.`
1067
+ /// will require that `.` appears literally in the pattern; `*`, `?`, `**`,
1068
+ /// or `[...]` will not match. This is useful because such files are
1069
+ /// conventionally considered hidden on Unix systems and it might be
1070
+ /// desirable to skip them when listing files.
1071
+ pub require_literal_leading_dot: bool,
1072
+ }
1073
+
1074
+ impl MatchOptions {
1075
+ /// Constructs a new `MatchOptions` with default field values. This is used
1076
+ /// when calling functions that do not take an explicit `MatchOptions`
1077
+ /// parameter.
1078
+ ///
1079
+ /// This function always returns this value:
1080
+ ///
1081
+ /// ```rust,ignore
1082
+ /// MatchOptions {
1083
+ /// case_sensitive: true,
1084
+ /// require_literal_separator: false,
1085
+ /// require_literal_leading_dot: false
1086
+ /// }
1087
+ /// ```
1088
+ ///
1089
+ /// # Note
1090
+ /// The behavior of this method doesn't match `default()`'s. This returns
1091
+ /// `case_sensitive` as `true` while `default()` does it as `false`.
1092
+ // FIXME: Consider unity the behavior with `default()` in a next major release.
1093
+ pub fn new() -> Self {
1094
+ Self {
1095
+ case_sensitive: true,
1096
+ require_literal_separator: false,
1097
+ require_literal_leading_dot: false,
1098
+ }
1099
+ }
1100
+ }
1101
+
1102
+ #[cfg(test)]
1103
+ mod test {
1104
+ use super::{glob, MatchOptions, Pattern};
1105
+ use std::path::Path;
1106
+
1107
+ #[test]
1108
+ fn test_pattern_from_str() {
1109
+ assert!("a*b".parse::<Pattern>().unwrap().matches("a_b"));
1110
+ assert!("a/**b".parse::<Pattern>().unwrap_err().pos == 4);
1111
+ }
1112
+
1113
+ #[test]
1114
+ fn test_wildcard_errors() {
1115
+ assert!(Pattern::new("a/**b").unwrap_err().pos == 4);
1116
+ assert!(Pattern::new("a/bc**").unwrap_err().pos == 3);
1117
+ assert!(Pattern::new("a/*****").unwrap_err().pos == 4);
1118
+ assert!(Pattern::new("a/b**c**d").unwrap_err().pos == 2);
1119
+ assert!(Pattern::new("a**b").unwrap_err().pos == 0);
1120
+ }
1121
+
1122
+ #[test]
1123
+ fn test_unclosed_bracket_errors() {
1124
+ assert!(Pattern::new("abc[def").unwrap_err().pos == 3);
1125
+ assert!(Pattern::new("abc[!def").unwrap_err().pos == 3);
1126
+ assert!(Pattern::new("abc[").unwrap_err().pos == 3);
1127
+ assert!(Pattern::new("abc[!").unwrap_err().pos == 3);
1128
+ assert!(Pattern::new("abc[d").unwrap_err().pos == 3);
1129
+ assert!(Pattern::new("abc[!d").unwrap_err().pos == 3);
1130
+ assert!(Pattern::new("abc[]").unwrap_err().pos == 3);
1131
+ assert!(Pattern::new("abc[!]").unwrap_err().pos == 3);
1132
+ }
1133
+
1134
+ #[test]
1135
+ fn test_glob_errors() {
1136
+ assert!(glob("a/**b").err().unwrap().pos == 4);
1137
+ assert!(glob("abc[def").err().unwrap().pos == 3);
1138
+ }
1139
+
1140
+ // this test assumes that there is a /root directory and that
1141
+ // the user running this test is not root or otherwise doesn't
1142
+ // have permission to read its contents
1143
+ #[cfg(all(unix, not(target_os = "macos")))]
1144
+ #[test]
1145
+ fn test_iteration_errors() {
1146
+ use std::io;
1147
+ let mut iter = glob("/root/*").unwrap();
1148
+
1149
+ // GlobErrors shouldn't halt iteration
1150
+ let next = iter.next();
1151
+ assert!(next.is_some());
1152
+
1153
+ let err = next.unwrap();
1154
+ assert!(err.is_err());
1155
+
1156
+ let err = err.err().unwrap();
1157
+ assert!(err.path() == Path::new("/root"));
1158
+ assert!(err.error().kind() == io::ErrorKind::PermissionDenied);
1159
+ }
1160
+
1161
+ #[test]
1162
+ fn test_absolute_pattern() {
1163
+ assert!(glob("/").unwrap().next().is_some());
1164
+ assert!(glob("//").unwrap().next().is_some());
1165
+
1166
+ // assume that the filesystem is not empty!
1167
+ assert!(glob("/*").unwrap().next().is_some());
1168
+
1169
+ #[cfg(not(windows))]
1170
+ fn win() {}
1171
+
1172
+ #[cfg(windows)]
1173
+ fn win() {
1174
+ use std::env::current_dir;
1175
+ use std::path::Component;
1176
+
1177
+ // check windows absolute paths with host/device components
1178
+ let root_with_device = current_dir()
1179
+ .ok()
1180
+ .and_then(|p| match p.components().next().unwrap() {
1181
+ Component::Prefix(prefix_component) => {
1182
+ let path = Path::new(prefix_component.as_os_str()).join("*");
1183
+ Some(path.to_path_buf())
1184
+ }
1185
+ _ => panic!("no prefix in this path"),
1186
+ })
1187
+ .unwrap();
1188
+ // FIXME (#9639): This needs to handle non-utf8 paths
1189
+ assert!(glob(root_with_device.as_os_str().to_str().unwrap())
1190
+ .unwrap()
1191
+ .next()
1192
+ .is_some());
1193
+ }
1194
+ win()
1195
+ }
1196
+
1197
+ #[test]
1198
+ fn test_wildcards() {
1199
+ assert!(Pattern::new("a*b").unwrap().matches("a_b"));
1200
+ assert!(Pattern::new("a*b*c").unwrap().matches("abc"));
1201
+ assert!(!Pattern::new("a*b*c").unwrap().matches("abcd"));
1202
+ assert!(Pattern::new("a*b*c").unwrap().matches("a_b_c"));
1203
+ assert!(Pattern::new("a*b*c").unwrap().matches("a___b___c"));
1204
+ assert!(Pattern::new("abc*abc*abc")
1205
+ .unwrap()
1206
+ .matches("abcabcabcabcabcabcabc"));
1207
+ assert!(!Pattern::new("abc*abc*abc")
1208
+ .unwrap()
1209
+ .matches("abcabcabcabcabcabcabca"));
1210
+ assert!(Pattern::new("a*a*a*a*a*a*a*a*a")
1211
+ .unwrap()
1212
+ .matches("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"));
1213
+ assert!(Pattern::new("a*b[xyz]c*d").unwrap().matches("abxcdbxcddd"));
1214
+ }
1215
+
1216
+ #[test]
1217
+ fn test_recursive_wildcards() {
1218
+ let pat = Pattern::new("some/**/needle.txt").unwrap();
1219
+ assert!(pat.matches("some/needle.txt"));
1220
+ assert!(pat.matches("some/one/needle.txt"));
1221
+ assert!(pat.matches("some/one/two/needle.txt"));
1222
+ assert!(pat.matches("some/other/needle.txt"));
1223
+ assert!(!pat.matches("some/other/notthis.txt"));
1224
+
1225
+ // a single ** should be valid, for globs
1226
+ // Should accept anything
1227
+ let pat = Pattern::new("**").unwrap();
1228
+ assert!(pat.is_recursive);
1229
+ assert!(pat.matches("abcde"));
1230
+ assert!(pat.matches(""));
1231
+ assert!(pat.matches(".asdf"));
1232
+ assert!(pat.matches("/x/.asdf"));
1233
+
1234
+ // collapse consecutive wildcards
1235
+ let pat = Pattern::new("some/**/**/needle.txt").unwrap();
1236
+ assert!(pat.matches("some/needle.txt"));
1237
+ assert!(pat.matches("some/one/needle.txt"));
1238
+ assert!(pat.matches("some/one/two/needle.txt"));
1239
+ assert!(pat.matches("some/other/needle.txt"));
1240
+ assert!(!pat.matches("some/other/notthis.txt"));
1241
+
1242
+ // ** can begin the pattern
1243
+ let pat = Pattern::new("**/test").unwrap();
1244
+ assert!(pat.matches("one/two/test"));
1245
+ assert!(pat.matches("one/test"));
1246
+ assert!(pat.matches("test"));
1247
+
1248
+ // /** can begin the pattern
1249
+ let pat = Pattern::new("/**/test").unwrap();
1250
+ assert!(pat.matches("/one/two/test"));
1251
+ assert!(pat.matches("/one/test"));
1252
+ assert!(pat.matches("/test"));
1253
+ assert!(!pat.matches("/one/notthis"));
1254
+ assert!(!pat.matches("/notthis"));
1255
+
1256
+ // Only start sub-patterns on start of path segment.
1257
+ let pat = Pattern::new("**/.*").unwrap();
1258
+ assert!(pat.matches(".abc"));
1259
+ assert!(pat.matches("abc/.abc"));
1260
+ assert!(!pat.matches("ab.c"));
1261
+ assert!(!pat.matches("abc/ab.c"));
1262
+ }
1263
+
1264
+ #[test]
1265
+ fn test_lots_of_files() {
1266
+ // this is a good test because it touches lots of differently named files
1267
+ glob("/*/*/*/*").unwrap().skip(10000).next();
1268
+ }
1269
+
1270
+ #[test]
1271
+ fn test_range_pattern() {
1272
+ let pat = Pattern::new("a[0-9]b").unwrap();
1273
+ for i in 0..10 {
1274
+ assert!(pat.matches(&format!("a{}b", i)));
1275
+ }
1276
+ assert!(!pat.matches("a_b"));
1277
+
1278
+ let pat = Pattern::new("a[!0-9]b").unwrap();
1279
+ for i in 0..10 {
1280
+ assert!(!pat.matches(&format!("a{}b", i)));
1281
+ }
1282
+ assert!(pat.matches("a_b"));
1283
+
1284
+ let pats = ["[a-z123]", "[1a-z23]", "[123a-z]"];
1285
+ for &p in pats.iter() {
1286
+ let pat = Pattern::new(p).unwrap();
1287
+ for c in "abcdefghijklmnopqrstuvwxyz".chars() {
1288
+ assert!(pat.matches(&c.to_string()));
1289
+ }
1290
+ for c in "ABCDEFGHIJKLMNOPQRSTUVWXYZ".chars() {
1291
+ let options = MatchOptions {
1292
+ case_sensitive: false,
1293
+ ..MatchOptions::new()
1294
+ };
1295
+ assert!(pat.matches_with(&c.to_string(), options));
1296
+ }
1297
+ assert!(pat.matches("1"));
1298
+ assert!(pat.matches("2"));
1299
+ assert!(pat.matches("3"));
1300
+ }
1301
+
1302
+ let pats = ["[abc-]", "[-abc]", "[a-c-]"];
1303
+ for &p in pats.iter() {
1304
+ let pat = Pattern::new(p).unwrap();
1305
+ assert!(pat.matches("a"));
1306
+ assert!(pat.matches("b"));
1307
+ assert!(pat.matches("c"));
1308
+ assert!(pat.matches("-"));
1309
+ assert!(!pat.matches("d"));
1310
+ }
1311
+
1312
+ let pat = Pattern::new("[2-1]").unwrap();
1313
+ assert!(!pat.matches("1"));
1314
+ assert!(!pat.matches("2"));
1315
+
1316
+ assert!(Pattern::new("[-]").unwrap().matches("-"));
1317
+ assert!(!Pattern::new("[!-]").unwrap().matches("-"));
1318
+ }
1319
+
1320
+ #[test]
1321
+ fn test_pattern_matches() {
1322
+ let txt_pat = Pattern::new("*hello.txt").unwrap();
1323
+ assert!(txt_pat.matches("hello.txt"));
1324
+ assert!(txt_pat.matches("gareth_says_hello.txt"));
1325
+ assert!(txt_pat.matches("some/path/to/hello.txt"));
1326
+ assert!(txt_pat.matches("some\\path\\to\\hello.txt"));
1327
+ assert!(txt_pat.matches("/an/absolute/path/to/hello.txt"));
1328
+ assert!(!txt_pat.matches("hello.txt-and-then-some"));
1329
+ assert!(!txt_pat.matches("goodbye.txt"));
1330
+
1331
+ let dir_pat = Pattern::new("*some/path/to/hello.txt").unwrap();
1332
+ assert!(dir_pat.matches("some/path/to/hello.txt"));
1333
+ assert!(dir_pat.matches("a/bigger/some/path/to/hello.txt"));
1334
+ assert!(!dir_pat.matches("some/path/to/hello.txt-and-then-some"));
1335
+ assert!(!dir_pat.matches("some/other/path/to/hello.txt"));
1336
+ }
1337
+
1338
+ #[test]
1339
+ fn test_pattern_escape() {
1340
+ let s = "_[_]_?_*_!_";
1341
+ assert_eq!(Pattern::escape(s), "_[[]_[]]_[?]_[*]_!_".to_string());
1342
+ assert!(Pattern::new(&Pattern::escape(s)).unwrap().matches(s));
1343
+ }
1344
+
1345
+ #[test]
1346
+ fn test_pattern_matches_case_insensitive() {
1347
+ let pat = Pattern::new("aBcDeFg").unwrap();
1348
+ let options = MatchOptions {
1349
+ case_sensitive: false,
1350
+ require_literal_separator: false,
1351
+ require_literal_leading_dot: false,
1352
+ };
1353
+
1354
+ assert!(pat.matches_with("aBcDeFg", options));
1355
+ assert!(pat.matches_with("abcdefg", options));
1356
+ assert!(pat.matches_with("ABCDEFG", options));
1357
+ assert!(pat.matches_with("AbCdEfG", options));
1358
+ }
1359
+
1360
+ #[test]
1361
+ fn test_pattern_matches_case_insensitive_range() {
1362
+ let pat_within = Pattern::new("[a]").unwrap();
1363
+ let pat_except = Pattern::new("[!a]").unwrap();
1364
+
1365
+ let options_case_insensitive = MatchOptions {
1366
+ case_sensitive: false,
1367
+ require_literal_separator: false,
1368
+ require_literal_leading_dot: false,
1369
+ };
1370
+ let options_case_sensitive = MatchOptions {
1371
+ case_sensitive: true,
1372
+ require_literal_separator: false,
1373
+ require_literal_leading_dot: false,
1374
+ };
1375
+
1376
+ assert!(pat_within.matches_with("a", options_case_insensitive));
1377
+ assert!(pat_within.matches_with("A", options_case_insensitive));
1378
+ assert!(!pat_within.matches_with("A", options_case_sensitive));
1379
+
1380
+ assert!(!pat_except.matches_with("a", options_case_insensitive));
1381
+ assert!(!pat_except.matches_with("A", options_case_insensitive));
1382
+ assert!(pat_except.matches_with("A", options_case_sensitive));
1383
+ }
1384
+
1385
+ #[test]
1386
+ fn test_pattern_matches_require_literal_separator() {
1387
+ let options_require_literal = MatchOptions {
1388
+ case_sensitive: true,
1389
+ require_literal_separator: true,
1390
+ require_literal_leading_dot: false,
1391
+ };
1392
+ let options_not_require_literal = MatchOptions {
1393
+ case_sensitive: true,
1394
+ require_literal_separator: false,
1395
+ require_literal_leading_dot: false,
1396
+ };
1397
+
1398
+ assert!(Pattern::new("abc/def")
1399
+ .unwrap()
1400
+ .matches_with("abc/def", options_require_literal));
1401
+ assert!(!Pattern::new("abc?def")
1402
+ .unwrap()
1403
+ .matches_with("abc/def", options_require_literal));
1404
+ assert!(!Pattern::new("abc*def")
1405
+ .unwrap()
1406
+ .matches_with("abc/def", options_require_literal));
1407
+ assert!(!Pattern::new("abc[/]def")
1408
+ .unwrap()
1409
+ .matches_with("abc/def", options_require_literal));
1410
+
1411
+ assert!(Pattern::new("abc/def")
1412
+ .unwrap()
1413
+ .matches_with("abc/def", options_not_require_literal));
1414
+ assert!(Pattern::new("abc?def")
1415
+ .unwrap()
1416
+ .matches_with("abc/def", options_not_require_literal));
1417
+ assert!(Pattern::new("abc*def")
1418
+ .unwrap()
1419
+ .matches_with("abc/def", options_not_require_literal));
1420
+ assert!(Pattern::new("abc[/]def")
1421
+ .unwrap()
1422
+ .matches_with("abc/def", options_not_require_literal));
1423
+ }
1424
+
1425
+ #[test]
1426
+ fn test_pattern_matches_require_literal_leading_dot() {
1427
+ let options_require_literal_leading_dot = MatchOptions {
1428
+ case_sensitive: true,
1429
+ require_literal_separator: false,
1430
+ require_literal_leading_dot: true,
1431
+ };
1432
+ let options_not_require_literal_leading_dot = MatchOptions {
1433
+ case_sensitive: true,
1434
+ require_literal_separator: false,
1435
+ require_literal_leading_dot: false,
1436
+ };
1437
+
1438
+ let f = |options| {
1439
+ Pattern::new("*.txt")
1440
+ .unwrap()
1441
+ .matches_with(".hello.txt", options)
1442
+ };
1443
+ assert!(f(options_not_require_literal_leading_dot));
1444
+ assert!(!f(options_require_literal_leading_dot));
1445
+
1446
+ let f = |options| {
1447
+ Pattern::new(".*.*")
1448
+ .unwrap()
1449
+ .matches_with(".hello.txt", options)
1450
+ };
1451
+ assert!(f(options_not_require_literal_leading_dot));
1452
+ assert!(f(options_require_literal_leading_dot));
1453
+
1454
+ let f = |options| {
1455
+ Pattern::new("aaa/bbb/*")
1456
+ .unwrap()
1457
+ .matches_with("aaa/bbb/.ccc", options)
1458
+ };
1459
+ assert!(f(options_not_require_literal_leading_dot));
1460
+ assert!(!f(options_require_literal_leading_dot));
1461
+
1462
+ let f = |options| {
1463
+ Pattern::new("aaa/bbb/*")
1464
+ .unwrap()
1465
+ .matches_with("aaa/bbb/c.c.c.", options)
1466
+ };
1467
+ assert!(f(options_not_require_literal_leading_dot));
1468
+ assert!(f(options_require_literal_leading_dot));
1469
+
1470
+ let f = |options| {
1471
+ Pattern::new("aaa/bbb/.*")
1472
+ .unwrap()
1473
+ .matches_with("aaa/bbb/.ccc", options)
1474
+ };
1475
+ assert!(f(options_not_require_literal_leading_dot));
1476
+ assert!(f(options_require_literal_leading_dot));
1477
+
1478
+ let f = |options| {
1479
+ Pattern::new("aaa/?bbb")
1480
+ .unwrap()
1481
+ .matches_with("aaa/.bbb", options)
1482
+ };
1483
+ assert!(f(options_not_require_literal_leading_dot));
1484
+ assert!(!f(options_require_literal_leading_dot));
1485
+
1486
+ let f = |options| {
1487
+ Pattern::new("aaa/[.]bbb")
1488
+ .unwrap()
1489
+ .matches_with("aaa/.bbb", options)
1490
+ };
1491
+ assert!(f(options_not_require_literal_leading_dot));
1492
+ assert!(!f(options_require_literal_leading_dot));
1493
+
1494
+ let f = |options| Pattern::new("**/*").unwrap().matches_with(".bbb", options);
1495
+ assert!(f(options_not_require_literal_leading_dot));
1496
+ assert!(!f(options_require_literal_leading_dot));
1497
+ }
1498
+
1499
+ #[test]
1500
+ fn test_matches_path() {
1501
+ // on windows, (Path::new("a/b").as_str().unwrap() == "a\\b"), so this
1502
+ // tests that / and \ are considered equivalent on windows
1503
+ assert!(Pattern::new("a/b").unwrap().matches_path(Path::new("a/b")));
1504
+ }
1505
+
1506
+ #[test]
1507
+ fn test_path_join() {
1508
+ let pattern = Path::new("one").join(Path::new("**/*.rs"));
1509
+ assert!(Pattern::new(pattern.to_str().unwrap()).is_ok());
1510
+ }
1511
+ }