code_ownership 2.1.4 → 2.2.1

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 (1159) hide show
  1. checksums.yaml +4 -4
  2. data/.cargo/config +2 -2
  3. data/Cargo.lock +36 -86
  4. data/bin/codeownership +1 -0
  5. data/ext/cargo-vendor/bindgen-0.72.1/.cargo-checksum.json +1 -0
  6. data/ext/cargo-vendor/bindgen-0.72.1/.cargo_vcs_info.json +6 -0
  7. data/ext/cargo-vendor/bindgen-0.72.1/Cargo.lock +485 -0
  8. data/ext/cargo-vendor/bindgen-0.72.1/Cargo.toml +189 -0
  9. data/ext/cargo-vendor/bindgen-0.72.1/Cargo.toml.orig +72 -0
  10. data/ext/cargo-vendor/bindgen-0.72.1/README.md +89 -0
  11. data/ext/cargo-vendor/bindgen-0.72.1/build.rs +29 -0
  12. data/ext/cargo-vendor/bindgen-0.72.1/callbacks.rs +317 -0
  13. data/ext/cargo-vendor/bindgen-0.72.1/clang.rs +2448 -0
  14. data/ext/cargo-vendor/bindgen-0.72.1/codegen/bitfield_unit.rs +112 -0
  15. data/ext/cargo-vendor/bindgen-0.72.1/codegen/bitfield_unit_raw_ref_macros.rs +191 -0
  16. data/ext/cargo-vendor/bindgen-0.72.1/codegen/bitfield_unit_tests.rs +260 -0
  17. data/ext/cargo-vendor/bindgen-0.72.1/codegen/dyngen.rs +258 -0
  18. data/ext/cargo-vendor/bindgen-0.72.1/codegen/error.rs +52 -0
  19. data/ext/cargo-vendor/bindgen-0.72.1/codegen/helpers.rs +395 -0
  20. data/ext/cargo-vendor/bindgen-0.72.1/codegen/impl_debug.rs +243 -0
  21. data/ext/cargo-vendor/bindgen-0.72.1/codegen/impl_partialeq.rs +142 -0
  22. data/ext/cargo-vendor/bindgen-0.72.1/codegen/mod.rs +5991 -0
  23. data/ext/cargo-vendor/bindgen-0.72.1/codegen/postprocessing/merge_extern_blocks.rs +72 -0
  24. data/ext/cargo-vendor/bindgen-0.72.1/codegen/postprocessing/sort_semantically.rs +46 -0
  25. data/ext/cargo-vendor/bindgen-0.72.1/codegen/serialize.rs +443 -0
  26. data/ext/cargo-vendor/bindgen-0.72.1/codegen/struct_layout.rs +458 -0
  27. data/ext/cargo-vendor/bindgen-0.72.1/deps.rs +61 -0
  28. data/ext/cargo-vendor/bindgen-0.72.1/diagnostics.rs +146 -0
  29. data/ext/cargo-vendor/bindgen-0.72.1/extra_assertions.rs +17 -0
  30. data/ext/cargo-vendor/bindgen-0.72.1/features.rs +570 -0
  31. data/ext/cargo-vendor/bindgen-0.72.1/ir/analysis/derive.rs +726 -0
  32. data/ext/cargo-vendor/bindgen-0.72.1/ir/analysis/has_destructor.rs +175 -0
  33. data/ext/cargo-vendor/bindgen-0.72.1/ir/analysis/has_float.rs +248 -0
  34. data/ext/cargo-vendor/bindgen-0.72.1/ir/analysis/has_type_param_in_array.rs +242 -0
  35. data/ext/cargo-vendor/bindgen-0.72.1/ir/analysis/has_vtable.rs +235 -0
  36. data/ext/cargo-vendor/bindgen-0.72.1/ir/analysis/mod.rs +395 -0
  37. data/ext/cargo-vendor/bindgen-0.72.1/ir/analysis/sizedness.rs +353 -0
  38. data/ext/cargo-vendor/bindgen-0.72.1/ir/analysis/template_params.rs +601 -0
  39. data/ext/cargo-vendor/bindgen-0.72.1/ir/annotations.rs +259 -0
  40. data/ext/cargo-vendor/bindgen-0.72.1/ir/comment.rs +100 -0
  41. data/ext/cargo-vendor/bindgen-0.72.1/ir/comp.rs +1921 -0
  42. data/ext/cargo-vendor/bindgen-0.72.1/ir/context.rs +3107 -0
  43. data/ext/cargo-vendor/bindgen-0.72.1/ir/derive.rs +130 -0
  44. data/ext/cargo-vendor/bindgen-0.72.1/ir/dot.rs +85 -0
  45. data/ext/cargo-vendor/bindgen-0.72.1/ir/enum_ty.rs +321 -0
  46. data/ext/cargo-vendor/bindgen-0.72.1/ir/function.rs +838 -0
  47. data/ext/cargo-vendor/bindgen-0.72.1/ir/int.rs +128 -0
  48. data/ext/cargo-vendor/bindgen-0.72.1/ir/item.rs +1994 -0
  49. data/ext/cargo-vendor/bindgen-0.72.1/ir/item_kind.rs +135 -0
  50. data/ext/cargo-vendor/bindgen-0.72.1/ir/layout.rs +126 -0
  51. data/ext/cargo-vendor/bindgen-0.72.1/ir/module.rs +96 -0
  52. data/ext/cargo-vendor/bindgen-0.72.1/ir/objc.rs +343 -0
  53. data/ext/cargo-vendor/bindgen-0.72.1/ir/template.rs +335 -0
  54. data/ext/cargo-vendor/bindgen-0.72.1/ir/traversal.rs +478 -0
  55. data/ext/cargo-vendor/bindgen-0.72.1/ir/ty.rs +1256 -0
  56. data/ext/cargo-vendor/bindgen-0.72.1/ir/var.rs +523 -0
  57. data/ext/cargo-vendor/bindgen-0.72.1/lib.rs +1422 -0
  58. data/ext/cargo-vendor/bindgen-0.72.1/log_stubs.rs +38 -0
  59. data/ext/cargo-vendor/bindgen-0.72.1/options/as_args.rs +52 -0
  60. data/ext/cargo-vendor/bindgen-0.72.1/options/cli.rs +1151 -0
  61. data/ext/cargo-vendor/bindgen-0.72.1/options/mod.rs +2286 -0
  62. data/ext/cargo-vendor/bindgen-0.72.1/regex_set.rs +199 -0
  63. data/ext/cargo-vendor/bindgen-0.72.1/time.rs +52 -0
  64. data/ext/cargo-vendor/codeowners-0.5.0/.cargo-checksum.json +1 -0
  65. data/ext/cargo-vendor/codeowners-0.5.0/.github/workflows/audit.yml +31 -0
  66. data/ext/cargo-vendor/codeowners-0.5.0/.github/workflows/ci.yml +180 -0
  67. data/ext/cargo-vendor/codeowners-0.5.0/.github/workflows/codeql.yml +21 -0
  68. data/ext/cargo-vendor/codeowners-0.5.0/Cargo.lock +1176 -0
  69. data/ext/cargo-vendor/codeowners-0.5.0/Cargo.toml +173 -0
  70. data/ext/cargo-vendor/codeowners-0.5.0/perf/README.md +204 -0
  71. data/ext/cargo-vendor/codeowners-0.5.0/perf/compare.sh +23 -0
  72. data/ext/cargo-vendor/codeowners-0.5.0/perf/run.sh +28 -0
  73. data/ext/cargo-vendor/codeowners-0.5.0/rust-toolchain.toml +4 -0
  74. data/ext/cargo-vendor/codeowners-0.5.0/src/bin/codeowners-perf.rs +719 -0
  75. data/ext/cargo-vendor/codeowners-0.5.0/src/cache/file.rs +179 -0
  76. data/ext/cargo-vendor/codeowners-0.5.0/src/cache/mod.rs +29 -0
  77. data/ext/cargo-vendor/codeowners-0.5.0/src/cache/noop.rs +26 -0
  78. data/ext/cargo-vendor/codeowners-0.5.0/src/cli.rs +138 -0
  79. data/ext/cargo-vendor/codeowners-0.5.0/src/main.rs +43 -0
  80. data/ext/cargo-vendor/codeowners-0.5.0/src/ownership/file_owner_resolver.rs +829 -0
  81. data/ext/cargo-vendor/codeowners-0.5.0/src/ownership/validator.rs +378 -0
  82. data/ext/cargo-vendor/codeowners-0.5.0/src/ownership.rs +243 -0
  83. data/ext/cargo-vendor/codeowners-0.5.0/src/project.rs +232 -0
  84. data/ext/cargo-vendor/codeowners-0.5.0/src/project_builder.rs +430 -0
  85. data/ext/cargo-vendor/codeowners-0.5.0/src/project_file_builder.rs +113 -0
  86. data/ext/cargo-vendor/codeowners-0.5.0/src/runner/api.rs +145 -0
  87. data/ext/cargo-vendor/codeowners-0.5.0/src/runner/types.rs +37 -0
  88. data/ext/cargo-vendor/codeowners-0.5.0/src/runner.rs +493 -0
  89. data/ext/cargo-vendor/codeowners-0.5.0/tests/annotation_in_unowned_team_glob_test.rs +64 -0
  90. data/ext/cargo-vendor/codeowners-0.5.0/tests/common/mod.rs +180 -0
  91. data/ext/cargo-vendor/codeowners-0.5.0/tests/directory_codeowner_github_team_test.rs +22 -0
  92. data/ext/cargo-vendor/codeowners-0.5.0/tests/empty_directory_codeowner_test.rs +26 -0
  93. data/ext/cargo-vendor/codeowners-0.5.0/tests/executable_name_config_test.rs +88 -0
  94. data/ext/cargo-vendor/codeowners-0.5.0/tests/fixtures/annotation_in_unowned_team_glob/.github/CODEOWNERS +18 -0
  95. data/ext/cargo-vendor/codeowners-0.5.0/tests/fixtures/annotation_in_unowned_team_glob/config/code_ownership.yml +4 -0
  96. data/ext/cargo-vendor/codeowners-0.5.0/tests/fixtures/annotation_in_unowned_team_glob/config/teams/alpha.yml +7 -0
  97. data/ext/cargo-vendor/codeowners-0.5.0/tests/fixtures/annotation_in_unowned_team_glob/config/teams/beta.yml +3 -0
  98. data/ext/cargo-vendor/codeowners-0.5.0/tests/fixtures/annotation_in_unowned_team_glob/ruby/app/services/alpha_owned.rb +2 -0
  99. data/ext/cargo-vendor/codeowners-0.5.0/tests/fixtures/annotation_in_unowned_team_glob/ruby/app/services/beta_owned.rb +4 -0
  100. data/ext/cargo-vendor/codeowners-0.5.0/tests/fixtures/custom_codeowners_path/docs/CODEOWNERS +14 -0
  101. data/ext/cargo-vendor/codeowners-0.5.0/tests/fixtures/custom_codeowners_path/expected/CODEOWNERS +14 -0
  102. data/ext/cargo-vendor/codeowners-0.5.0/tests/fixtures/directory-codeowner-github-team/.github/CODEOWNERS +15 -0
  103. data/ext/cargo-vendor/codeowners-0.5.0/tests/fixtures/directory-codeowner-github-team/app/by_handle/.codeowner +1 -0
  104. data/ext/cargo-vendor/codeowners-0.5.0/tests/fixtures/directory-codeowner-github-team/app/by_handle/handled.rb +2 -0
  105. data/ext/cargo-vendor/codeowners-0.5.0/tests/fixtures/directory-codeowner-github-team/app/by_name/named.rb +2 -0
  106. data/ext/cargo-vendor/codeowners-0.5.0/tests/fixtures/empty-directory-codeowner/.github/CODEOWNERS +14 -0
  107. data/ext/cargo-vendor/codeowners-0.5.0/tests/fixtures/empty-directory-codeowner/app/services/.codeowner +1 -0
  108. data/ext/cargo-vendor/codeowners-0.5.0/tests/fixtures/empty-directory-codeowner/app/services/nested/.codeowner +1 -0
  109. data/ext/cargo-vendor/codeowners-0.5.0/tests/fixtures/empty-directory-codeowner/app/services/nested/nested_file.rb +2 -0
  110. data/ext/cargo-vendor/codeowners-0.5.0/tests/fixtures/empty-directory-codeowner/config/code_ownership.yml +10 -0
  111. data/ext/cargo-vendor/codeowners-0.5.0/tests/fixtures/empty-directory-codeowner/config/teams/foo.yml +5 -0
  112. data/ext/cargo-vendor/codeowners-0.5.0/tests/fixtures/invalid-directory-codeowner/.github/CODEOWNERS +14 -0
  113. data/ext/cargo-vendor/codeowners-0.5.0/tests/fixtures/invalid-directory-codeowner/app/services/.codeowner +1 -0
  114. data/ext/cargo-vendor/codeowners-0.5.0/tests/fixtures/invalid-directory-codeowner/app/services/nested/.codeowner +1 -0
  115. data/ext/cargo-vendor/codeowners-0.5.0/tests/fixtures/invalid-directory-codeowner/app/services/nested/nested_file.rb +2 -0
  116. data/ext/cargo-vendor/codeowners-0.5.0/tests/fixtures/invalid-directory-codeowner/config/code_ownership.yml +10 -0
  117. data/ext/cargo-vendor/codeowners-0.5.0/tests/fixtures/invalid-directory-codeowner/config/teams/foo.yml +5 -0
  118. data/ext/cargo-vendor/codeowners-0.5.0/tests/fixtures/multiple-directory-owners/app/services/.codeowner +1 -0
  119. data/ext/cargo-vendor/codeowners-0.5.0/tests/fixtures/multiple-directory-owners/config/code_ownership.yml +10 -0
  120. data/ext/cargo-vendor/codeowners-0.5.0/tests/fixtures/multiple-directory-owners/config/teams/foo.yml +5 -0
  121. data/ext/cargo-vendor/codeowners-0.5.0/tests/fixtures/valid_project/.github/CODEOWNERS +41 -0
  122. data/ext/cargo-vendor/codeowners-0.5.0/tests/fixtures/valid_project_with_overrides/.github/CODEOWNERS +53 -0
  123. data/ext/cargo-vendor/codeowners-0.5.0/tests/global_gitignore_test.rs +50 -0
  124. data/ext/cargo-vendor/codeowners-0.5.0/tests/invalid_directory_codeowner_test.rs +26 -0
  125. data/ext/cargo-vendor/codeowners-0.5.0/tests/invalid_project_test.rs +174 -0
  126. data/ext/cargo-vendor/codeowners-0.5.0/tests/perf_harness_test.rs +245 -0
  127. data/ext/cargo-vendor/codeowners-0.5.0/tests/untracked_new_file_test.rs +63 -0
  128. data/ext/cargo-vendor/codeowners-0.5.0/tests/untracked_source_file_test.rs +40 -0
  129. data/ext/cargo-vendor/codeowners-0.5.0/tests/valid_project_test.rs +348 -0
  130. data/ext/cargo-vendor/error-stack-0.8.0/.cargo-checksum.json +1 -0
  131. data/ext/cargo-vendor/error-stack-0.8.0/.cargo_vcs_info.json +6 -0
  132. data/ext/cargo-vendor/error-stack-0.8.0/.justfile +16 -0
  133. data/ext/cargo-vendor/error-stack-0.8.0/CHANGELOG.md +158 -0
  134. data/ext/cargo-vendor/error-stack-0.8.0/Cargo.lock +733 -0
  135. data/ext/cargo-vendor/error-stack-0.8.0/Cargo.toml +389 -0
  136. data/ext/cargo-vendor/error-stack-0.8.0/Cargo.toml.orig +109 -0
  137. data/ext/cargo-vendor/error-stack-0.8.0/README.md +149 -0
  138. data/ext/cargo-vendor/error-stack-0.8.0/build.rs +28 -0
  139. data/ext/cargo-vendor/error-stack-0.8.0/examples/demo.rs +117 -0
  140. data/ext/cargo-vendor/error-stack-0.8.0/examples/detect.rs +68 -0
  141. data/ext/cargo-vendor/error-stack-0.8.0/examples/exit_code.rs +25 -0
  142. data/ext/cargo-vendor/error-stack-0.8.0/examples/parse_config.rs +51 -0
  143. data/ext/cargo-vendor/error-stack-0.8.0/src/compat/anyhow.rs +34 -0
  144. data/ext/cargo-vendor/error-stack-0.8.0/src/compat/eyre.rs +32 -0
  145. data/ext/cargo-vendor/error-stack-0.8.0/src/compat/mod.rs +34 -0
  146. data/ext/cargo-vendor/error-stack-0.8.0/src/context.rs +52 -0
  147. data/ext/cargo-vendor/error-stack-0.8.0/src/error.rs +40 -0
  148. data/ext/cargo-vendor/error-stack-0.8.0/src/ext/iter.rs +286 -0
  149. data/ext/cargo-vendor/error-stack-0.8.0/src/ext/mod.rs +19 -0
  150. data/ext/cargo-vendor/error-stack-0.8.0/src/ext/stream.rs +212 -0
  151. data/ext/cargo-vendor/error-stack-0.8.0/src/ext/tuple.rs +218 -0
  152. data/ext/cargo-vendor/error-stack-0.8.0/src/fmt/charset.rs +114 -0
  153. data/ext/cargo-vendor/error-stack-0.8.0/src/fmt/color.rs +330 -0
  154. data/ext/cargo-vendor/error-stack-0.8.0/src/fmt/config.rs +67 -0
  155. data/ext/cargo-vendor/error-stack-0.8.0/src/fmt/hook.rs +544 -0
  156. data/ext/cargo-vendor/error-stack-0.8.0/src/fmt/location.rs +33 -0
  157. data/ext/cargo-vendor/error-stack-0.8.0/src/fmt/mod.rs +1187 -0
  158. data/ext/cargo-vendor/error-stack-0.8.0/src/frame/frame_impl.rs +259 -0
  159. data/ext/cargo-vendor/error-stack-0.8.0/src/frame/kind.rs +38 -0
  160. data/ext/cargo-vendor/error-stack-0.8.0/src/frame/mod.rs +120 -0
  161. data/ext/cargo-vendor/error-stack-0.8.0/src/future.rs +301 -0
  162. data/ext/cargo-vendor/error-stack-0.8.0/src/hook/context.rs +363 -0
  163. data/ext/cargo-vendor/error-stack-0.8.0/src/hook/mod.rs +240 -0
  164. data/ext/cargo-vendor/error-stack-0.8.0/src/iter.rs +224 -0
  165. data/ext/cargo-vendor/error-stack-0.8.0/src/lib.rs +557 -0
  166. data/ext/cargo-vendor/error-stack-0.8.0/src/macros.rs +212 -0
  167. data/ext/cargo-vendor/error-stack-0.8.0/src/report.rs +1058 -0
  168. data/ext/cargo-vendor/error-stack-0.8.0/src/result.rs +137 -0
  169. data/ext/cargo-vendor/error-stack-0.8.0/src/serde.rs +169 -0
  170. data/ext/cargo-vendor/error-stack-0.8.0/src/sink.rs +672 -0
  171. data/ext/cargo-vendor/error-stack-0.8.0/tests/common.rs +354 -0
  172. data/ext/cargo-vendor/error-stack-0.8.0/tests/compiletest.rs +22 -0
  173. data/ext/cargo-vendor/error-stack-0.8.0/tests/snapshots/doc/fmt__charset_ascii.snap +9 -0
  174. data/ext/cargo-vendor/error-stack-0.8.0/tests/snapshots/doc/fmt__charset_utf8.snap +9 -0
  175. data/ext/cargo-vendor/error-stack-0.8.0/tests/snapshots/doc/fmt__diagnostics_add.snap +10 -0
  176. data/ext/cargo-vendor/error-stack-0.8.0/tests/snapshots/doc/fmt__doc.snap +12 -0
  177. data/ext/cargo-vendor/error-stack-0.8.0/tests/snapshots/doc/fmt__emit.snap +16 -0
  178. data/ext/cargo-vendor/error-stack-0.8.0/tests/snapshots/doc/fmt__emit_alt.snap +28 -0
  179. data/ext/cargo-vendor/error-stack-0.8.0/tests/snapshots/doc/fmt__hookcontext_cast.snap +11 -0
  180. data/ext/cargo-vendor/error-stack-0.8.0/tests/snapshots/doc/fmt__hookcontext_decrement.snap +10 -0
  181. data/ext/cargo-vendor/error-stack-0.8.0/tests/snapshots/doc/fmt__hookcontext_emit.snap +16 -0
  182. data/ext/cargo-vendor/error-stack-0.8.0/tests/snapshots/doc/fmt__hookcontext_increment.snap +10 -0
  183. data/ext/cargo-vendor/error-stack-0.8.0/tests/snapshots/doc/fmt__hookcontext_storage.snap +10 -0
  184. data/ext/cargo-vendor/error-stack-0.8.0/tests/snapshots/doc/fmt__preference_color.snap +9 -0
  185. data/ext/cargo-vendor/error-stack-0.8.0/tests/snapshots/doc/fmt__preference_emphasis.snap +9 -0
  186. data/ext/cargo-vendor/error-stack-0.8.0/tests/snapshots/doc/fmt__preference_none.snap +9 -0
  187. data/ext/cargo-vendor/error-stack-0.8.0/tests/snapshots/doc/fmt_doc_alt.snap +15 -0
  188. data/ext/cargo-vendor/error-stack-0.8.0/tests/snapshots/doc/hook__debug_hook.snap +9 -0
  189. data/ext/cargo-vendor/error-stack-0.8.0/tests/snapshots/doc/hook__debug_hook_provide.snap +10 -0
  190. data/ext/cargo-vendor/error-stack-0.8.0/tests/snapshots/doc/lib__suggestion.snap +13 -0
  191. data/ext/cargo-vendor/error-stack-0.8.0/tests/snapshots/doc/report_debug__doc.snap +14 -0
  192. data/ext/cargo-vendor/error-stack-0.8.0/tests/snapshots/test_debug__full__complex.snap +49 -0
  193. data/ext/cargo-vendor/error-stack-0.8.0/tests/snapshots/test_debug__full__hook_location.snap +15 -0
  194. data/ext/cargo-vendor/error-stack-0.8.0/tests/snapshots/test_debug__full__linear.snap +27 -0
  195. data/ext/cargo-vendor/error-stack-0.8.0/tests/snapshots/test_debug__full__linear_ext.snap +27 -0
  196. data/ext/cargo-vendor/error-stack-0.8.0/tests/snapshots/test_debug__full__multiline_context.snap +25 -0
  197. data/ext/cargo-vendor/error-stack-0.8.0/tests/snapshots/test_debug__full__sources.snap +48 -0
  198. data/ext/cargo-vendor/error-stack-0.8.0/tests/snapshots/test_debug__full__sources_transparent.snap +50 -0
  199. data/ext/cargo-vendor/error-stack-0.8.0/tests/snapshots/test_debug__sources_nested.snap +78 -0
  200. data/ext/cargo-vendor/error-stack-0.8.0/tests/snapshots/test_debug__sources_nested@spantrace-backtrace.snap +128 -0
  201. data/ext/cargo-vendor/error-stack-0.8.0/tests/snapshots/test_debug__sources_nested_alternate.snap +78 -0
  202. data/ext/cargo-vendor/error-stack-0.8.0/tests/snapshots/test_debug__sources_nested_alternate@spantrace-backtrace.snap +128 -0
  203. data/ext/cargo-vendor/error-stack-0.8.0/tests/snapshots/test_serialize__attachment.snap +13 -0
  204. data/ext/cargo-vendor/error-stack-0.8.0/tests/snapshots/test_serialize__context.snap +19 -0
  205. data/ext/cargo-vendor/error-stack-0.8.0/tests/snapshots/test_serialize__multiple_sources.snap +30 -0
  206. data/ext/cargo-vendor/error-stack-0.8.0/tests/snapshots/test_serialize__multiple_sources_at_root.snap +20 -0
  207. data/ext/cargo-vendor/error-stack-0.8.0/tests/test_attach.rs +94 -0
  208. data/ext/cargo-vendor/error-stack-0.8.0/tests/test_attach_printable.rs +73 -0
  209. data/ext/cargo-vendor/error-stack-0.8.0/tests/test_backtrace.rs +61 -0
  210. data/ext/cargo-vendor/error-stack-0.8.0/tests/test_change_context.rs +90 -0
  211. data/ext/cargo-vendor/error-stack-0.8.0/tests/test_compatibility.rs +224 -0
  212. data/ext/cargo-vendor/error-stack-0.8.0/tests/test_conversion.rs +134 -0
  213. data/ext/cargo-vendor/error-stack-0.8.0/tests/test_debug.rs +628 -0
  214. data/ext/cargo-vendor/error-stack-0.8.0/tests/test_display.rs +31 -0
  215. data/ext/cargo-vendor/error-stack-0.8.0/tests/test_downcast.rs +101 -0
  216. data/ext/cargo-vendor/error-stack-0.8.0/tests/test_extend.rs +99 -0
  217. data/ext/cargo-vendor/error-stack-0.8.0/tests/test_frame.rs +136 -0
  218. data/ext/cargo-vendor/error-stack-0.8.0/tests/test_iter.rs +132 -0
  219. data/ext/cargo-vendor/error-stack-0.8.0/tests/test_macros.rs +68 -0
  220. data/ext/cargo-vendor/error-stack-0.8.0/tests/test_provision.rs +52 -0
  221. data/ext/cargo-vendor/error-stack-0.8.0/tests/test_serialize.rs +70 -0
  222. data/ext/cargo-vendor/error-stack-0.8.0/tests/test_span_trace.rs +91 -0
  223. data/ext/cargo-vendor/error-stack-0.8.0/tests/ui/attach_diagnostics.rs +21 -0
  224. data/ext/cargo-vendor/error-stack-0.8.0/tests/ui/attach_diagnostics.stderr +23 -0
  225. data/ext/cargo-vendor/error-stack-0.8.0/tests/ui/frames_mut_escape.rs +28 -0
  226. data/ext/cargo-vendor/error-stack-0.8.0/tests/ui/frames_mut_escape.stderr +13 -0
  227. data/ext/cargo-vendor/error-stack-0.8.0/tests/ui/macro_invalid_args.rs +32 -0
  228. data/ext/cargo-vendor/error-stack-0.8.0/tests/ui/macro_invalid_args.stderr +132 -0
  229. data/ext/cargo-vendor/error-stack-0.8.0/tests/ui/missing_args.rs +32 -0
  230. data/ext/cargo-vendor/error-stack-0.8.0/tests/ui/missing_args.stderr +35 -0
  231. data/ext/cargo-vendor/error-stack-0.8.0/tests/ui/must_use.rs +20 -0
  232. data/ext/cargo-vendor/error-stack-0.8.0/tests/ui/must_use.stderr +15 -0
  233. data/ext/cargo-vendor/rb-sys-0.9.130/.cargo-checksum.json +1 -0
  234. data/ext/cargo-vendor/rb-sys-0.9.130/.cargo_vcs_info.json +6 -0
  235. data/ext/cargo-vendor/rb-sys-0.9.130/Cargo.lock +385 -0
  236. data/ext/cargo-vendor/rb-sys-0.9.130/Cargo.toml +71 -0
  237. data/ext/cargo-vendor/rb-sys-0.9.130/Cargo.toml.orig +58 -0
  238. data/ext/cargo-vendor/rb-sys-0.9.130/build/main.rs +292 -0
  239. data/ext/cargo-vendor/rb-sys-0.9.130/build/stable_api_config.rs +179 -0
  240. data/ext/cargo-vendor/rb-sys-0.9.130/build/version.rs +58 -0
  241. data/ext/cargo-vendor/rb-sys-0.9.130/src/bindings.rs +22 -0
  242. data/ext/cargo-vendor/rb-sys-0.9.130/src/macros.rs +701 -0
  243. data/ext/cargo-vendor/rb-sys-0.9.130/src/memory.rs +64 -0
  244. data/ext/cargo-vendor/rb-sys-0.9.130/src/stable_api/compiled.c +338 -0
  245. data/ext/cargo-vendor/rb-sys-0.9.130/src/stable_api/compiled.rs +452 -0
  246. data/ext/cargo-vendor/rb-sys-0.9.130/src/stable_api/ruby_2_7.rs +770 -0
  247. data/ext/cargo-vendor/rb-sys-0.9.130/src/stable_api/ruby_3_0.rs +773 -0
  248. data/ext/cargo-vendor/rb-sys-0.9.130/src/stable_api/ruby_3_1.rs +766 -0
  249. data/ext/cargo-vendor/rb-sys-0.9.130/src/stable_api/ruby_3_2.rs +764 -0
  250. data/ext/cargo-vendor/rb-sys-0.9.130/src/stable_api/ruby_3_3.rs +777 -0
  251. data/ext/cargo-vendor/rb-sys-0.9.130/src/stable_api/ruby_3_4.rs +788 -0
  252. data/ext/cargo-vendor/rb-sys-0.9.130/src/stable_api/ruby_4_0.rs +784 -0
  253. data/ext/cargo-vendor/rb-sys-0.9.130/src/stable_api.rs +465 -0
  254. data/ext/cargo-vendor/rb-sys-0.9.130/src/utils.rs +94 -0
  255. data/ext/cargo-vendor/rb-sys-build-0.9.130/.cargo-checksum.json +1 -0
  256. data/ext/cargo-vendor/rb-sys-build-0.9.130/.cargo_vcs_info.json +6 -0
  257. data/ext/cargo-vendor/rb-sys-build-0.9.130/Cargo.lock +286 -0
  258. data/ext/cargo-vendor/rb-sys-build-0.9.130/Cargo.toml +76 -0
  259. data/ext/cargo-vendor/rb-sys-build-0.9.130/Cargo.toml.orig +33 -0
  260. data/ext/cargo-vendor/rb-sys-build-0.9.130/src/bindings/gc_stress.rs +303 -0
  261. data/ext/cargo-vendor/rb-sys-build-0.9.130/src/bindings/stable_api.rs +297 -0
  262. data/ext/cargo-vendor/rb-sys-build-0.9.130/src/bindings.rs +292 -0
  263. data/ext/cargo-vendor/rb-sys-build-0.9.130/src/cc.rs +421 -0
  264. data/ext/cargo-vendor/rb-sys-build-0.9.130/src/rb_config.rs +1060 -0
  265. data/ext/cargo-vendor/rb-sys-build-0.9.130/tests/fixtures/rubyopt_stdout.rb +1 -0
  266. data/ext/cargo-vendor/rb-sys-build-0.9.130/tests/rubyopt.rs +17 -0
  267. data/ext/cargo-vendor/rb-sys-env-0.2.3/.cargo-checksum.json +1 -0
  268. data/ext/cargo-vendor/rb-sys-env-0.2.3/.cargo_vcs_info.json +6 -0
  269. data/ext/cargo-vendor/rb-sys-env-0.2.3/Cargo.lock +7 -0
  270. data/ext/cargo-vendor/rb-sys-env-0.2.3/Cargo.toml +33 -0
  271. data/ext/cargo-vendor/rb-sys-env-0.2.3/Cargo.toml.orig +14 -0
  272. data/ext/cargo-vendor/rb-sys-env-0.2.3/readme.md +117 -0
  273. data/ext/cargo-vendor/rb-sys-env-0.2.3/src/ruby_version.rs +165 -0
  274. data/ext/cargo-vendor/rustc-hash-2.1.3/.cargo-checksum.json +1 -0
  275. data/ext/cargo-vendor/rustc-hash-2.1.3/.cargo_vcs_info.json +6 -0
  276. data/ext/cargo-vendor/rustc-hash-2.1.3/.github/workflows/rust.yml +73 -0
  277. data/ext/cargo-vendor/rustc-hash-2.1.3/CHANGELOG.md +41 -0
  278. data/ext/cargo-vendor/rustc-hash-2.1.3/CODE_OF_CONDUCT.md +3 -0
  279. data/ext/cargo-vendor/rustc-hash-2.1.3/Cargo.lock +90 -0
  280. data/ext/cargo-vendor/rustc-hash-2.1.3/Cargo.toml +50 -0
  281. data/ext/cargo-vendor/rustc-hash-2.1.3/Cargo.toml.orig +20 -0
  282. data/ext/cargo-vendor/rustc-hash-2.1.3/LICENSE-APACHE +176 -0
  283. data/ext/cargo-vendor/rustc-hash-2.1.3/LICENSE-MIT +23 -0
  284. data/ext/cargo-vendor/rustc-hash-2.1.3/README.md +42 -0
  285. data/ext/cargo-vendor/rustc-hash-2.1.3/src/lib.rs +472 -0
  286. data/ext/cargo-vendor/rustc-hash-2.1.3/src/random_state.rs +101 -0
  287. data/ext/cargo-vendor/rustc-hash-2.1.3/src/seeded_state.rs +76 -0
  288. data/ext/cargo-vendor/serde-1.0.229/.cargo-checksum.json +1 -0
  289. data/ext/cargo-vendor/serde-1.0.229/.cargo_vcs_info.json +6 -0
  290. data/ext/cargo-vendor/serde-1.0.229/Cargo.lock +66 -0
  291. data/ext/cargo-vendor/serde-1.0.229/Cargo.toml +84 -0
  292. data/ext/cargo-vendor/serde-1.0.229/Cargo.toml.orig +62 -0
  293. data/ext/cargo-vendor/serde-1.0.229/README.md +114 -0
  294. data/ext/cargo-vendor/serde-1.0.229/build.rs +69 -0
  295. data/ext/cargo-vendor/serde-1.0.229/src/core/de/impls.rs +3173 -0
  296. data/ext/cargo-vendor/serde-1.0.229/src/core/lib.rs +121 -0
  297. data/ext/cargo-vendor/serde-1.0.229/src/lib.rs +285 -0
  298. data/ext/cargo-vendor/serde_core-1.0.229/.cargo-checksum.json +1 -0
  299. data/ext/cargo-vendor/serde_core-1.0.229/.cargo_vcs_info.json +6 -0
  300. data/ext/cargo-vendor/serde_core-1.0.229/Cargo.lock +63 -0
  301. data/ext/cargo-vendor/serde_core-1.0.229/Cargo.toml +87 -0
  302. data/ext/cargo-vendor/serde_core-1.0.229/Cargo.toml.orig +70 -0
  303. data/ext/cargo-vendor/serde_core-1.0.229/build.rs +113 -0
  304. data/ext/cargo-vendor/serde_core-1.0.229/src/de/impls.rs +3173 -0
  305. data/ext/cargo-vendor/serde_core-1.0.229/src/lib.rs +121 -0
  306. data/ext/cargo-vendor/serde_derive-1.0.229/.cargo-checksum.json +1 -0
  307. data/ext/cargo-vendor/serde_derive-1.0.229/.cargo_vcs_info.json +6 -0
  308. data/ext/cargo-vendor/serde_derive-1.0.229/Cargo.lock +88 -0
  309. data/ext/cargo-vendor/serde_derive-1.0.229/Cargo.toml +87 -0
  310. data/ext/cargo-vendor/serde_derive-1.0.229/Cargo.toml.orig +42 -0
  311. data/ext/cargo-vendor/serde_derive-1.0.229/README.md +114 -0
  312. data/ext/cargo-vendor/serde_derive-1.0.229/src/bound.rs +431 -0
  313. data/ext/cargo-vendor/serde_derive-1.0.229/src/de/enum_adjacently.rs +324 -0
  314. data/ext/cargo-vendor/serde_derive-1.0.229/src/de/enum_externally.rs +213 -0
  315. data/ext/cargo-vendor/serde_derive-1.0.229/src/de.rs +976 -0
  316. data/ext/cargo-vendor/serde_derive-1.0.229/src/internals/ast.rs +225 -0
  317. data/ext/cargo-vendor/serde_derive-1.0.229/src/internals/attr.rs +1818 -0
  318. data/ext/cargo-vendor/serde_derive-1.0.229/src/internals/ctxt.rs +67 -0
  319. data/ext/cargo-vendor/serde_derive-1.0.229/src/internals/receiver.rs +293 -0
  320. data/ext/cargo-vendor/serde_derive-1.0.229/src/lib.rs +127 -0
  321. data/ext/cargo-vendor/serde_derive-1.0.229/src/pretend.rs +188 -0
  322. data/ext/cargo-vendor/serde_derive-1.0.229/src/ser.rs +1369 -0
  323. data/ext/cargo-vendor/serde_magnus-0.11.0/.cargo-checksum.json +1 -0
  324. data/ext/cargo-vendor/serde_magnus-0.11.0/.cargo_vcs_info.json +6 -0
  325. data/ext/cargo-vendor/serde_magnus-0.11.0/Cargo.lock +385 -0
  326. data/ext/cargo-vendor/serde_magnus-0.11.0/Cargo.toml +162 -0
  327. data/ext/cargo-vendor/serde_magnus-0.11.0/Cargo.toml.orig +28 -0
  328. data/ext/cargo-vendor/serde_magnus-0.11.0/README.md +121 -0
  329. data/ext/cargo-vendor/serde_magnus-0.11.0/src/de/deserializer.rs +185 -0
  330. data/ext/cargo-vendor/syn-3.0.9/.cargo-checksum.json +1 -0
  331. data/ext/cargo-vendor/syn-3.0.9/.cargo_vcs_info.json +6 -0
  332. data/ext/cargo-vendor/syn-3.0.9/Cargo.lock +1948 -0
  333. data/ext/cargo-vendor/syn-3.0.9/Cargo.toml +268 -0
  334. data/ext/cargo-vendor/syn-3.0.9/Cargo.toml.orig +95 -0
  335. data/ext/cargo-vendor/syn-3.0.9/LICENSE-APACHE +176 -0
  336. data/ext/cargo-vendor/syn-3.0.9/README.md +297 -0
  337. data/ext/cargo-vendor/syn-3.0.9/benches/file.rs +59 -0
  338. data/ext/cargo-vendor/syn-3.0.9/benches/rust.rs +189 -0
  339. data/ext/cargo-vendor/syn-3.0.9/src/attr.rs +841 -0
  340. data/ext/cargo-vendor/syn-3.0.9/src/bigint.rs +68 -0
  341. data/ext/cargo-vendor/syn-3.0.9/src/buffer.rs +462 -0
  342. data/ext/cargo-vendor/syn-3.0.9/src/classify.rs +311 -0
  343. data/ext/cargo-vendor/syn-3.0.9/src/custom_keyword.rs +260 -0
  344. data/ext/cargo-vendor/syn-3.0.9/src/custom_punctuation.rs +305 -0
  345. data/ext/cargo-vendor/syn-3.0.9/src/data.rs +489 -0
  346. data/ext/cargo-vendor/syn-3.0.9/src/derive.rs +260 -0
  347. data/ext/cargo-vendor/syn-3.0.9/src/discouraged.rs +233 -0
  348. data/ext/cargo-vendor/syn-3.0.9/src/drops.rs +58 -0
  349. data/ext/cargo-vendor/syn-3.0.9/src/error.rs +552 -0
  350. data/ext/cargo-vendor/syn-3.0.9/src/export.rs +73 -0
  351. data/ext/cargo-vendor/syn-3.0.9/src/expr.rs +4249 -0
  352. data/ext/cargo-vendor/syn-3.0.9/src/ext.rs +180 -0
  353. data/ext/cargo-vendor/syn-3.0.9/src/file.rs +136 -0
  354. data/ext/cargo-vendor/syn-3.0.9/src/fixup.rs +773 -0
  355. data/ext/cargo-vendor/syn-3.0.9/src/gen/clone.rs +2394 -0
  356. data/ext/cargo-vendor/syn-3.0.9/src/gen/debug.rs +3399 -0
  357. data/ext/cargo-vendor/syn-3.0.9/src/gen/eq.rs +2459 -0
  358. data/ext/cargo-vendor/syn-3.0.9/src/gen/fold.rs +3934 -0
  359. data/ext/cargo-vendor/syn-3.0.9/src/gen/hash.rs +3040 -0
  360. data/ext/cargo-vendor/syn-3.0.9/src/gen/token.css +744 -0
  361. data/ext/cargo-vendor/syn-3.0.9/src/gen/visit.rs +4037 -0
  362. data/ext/cargo-vendor/syn-3.0.9/src/gen/visit_mut.rs +3824 -0
  363. data/ext/cargo-vendor/syn-3.0.9/src/generics.rs +1490 -0
  364. data/ext/cargo-vendor/syn-3.0.9/src/group.rs +294 -0
  365. data/ext/cargo-vendor/syn-3.0.9/src/ident.rs +109 -0
  366. data/ext/cargo-vendor/syn-3.0.9/src/item.rs +3923 -0
  367. data/ext/cargo-vendor/syn-3.0.9/src/lib.rs +1132 -0
  368. data/ext/cargo-vendor/syn-3.0.9/src/lifetime.rs +193 -0
  369. data/ext/cargo-vendor/syn-3.0.9/src/lit.rs +1881 -0
  370. data/ext/cargo-vendor/syn-3.0.9/src/lookahead.rs +350 -0
  371. data/ext/cargo-vendor/syn-3.0.9/src/mac.rs +225 -0
  372. data/ext/cargo-vendor/syn-3.0.9/src/macros.rs +151 -0
  373. data/ext/cargo-vendor/syn-3.0.9/src/meta.rs +427 -0
  374. data/ext/cargo-vendor/syn-3.0.9/src/op.rs +219 -0
  375. data/ext/cargo-vendor/syn-3.0.9/src/parse.rs +1420 -0
  376. data/ext/cargo-vendor/syn-3.0.9/src/parse_macro_input.rs +128 -0
  377. data/ext/cargo-vendor/syn-3.0.9/src/parse_quote.rs +261 -0
  378. data/ext/cargo-vendor/syn-3.0.9/src/pat.rs +994 -0
  379. data/ext/cargo-vendor/syn-3.0.9/src/path.rs +972 -0
  380. data/ext/cargo-vendor/syn-3.0.9/src/precedence.rs +210 -0
  381. data/ext/cargo-vendor/syn-3.0.9/src/print.rs +16 -0
  382. data/ext/cargo-vendor/syn-3.0.9/src/punctuated.rs +1200 -0
  383. data/ext/cargo-vendor/syn-3.0.9/src/restriction.rs +160 -0
  384. data/ext/cargo-vendor/syn-3.0.9/src/scan_expr.rs +270 -0
  385. data/ext/cargo-vendor/syn-3.0.9/src/sealed.rs +4 -0
  386. data/ext/cargo-vendor/syn-3.0.9/src/span.rs +63 -0
  387. data/ext/cargo-vendor/syn-3.0.9/src/spanned.rs +118 -0
  388. data/ext/cargo-vendor/syn-3.0.9/src/stmt.rs +536 -0
  389. data/ext/cargo-vendor/syn-3.0.9/src/thread.rs +60 -0
  390. data/ext/cargo-vendor/syn-3.0.9/src/token.rs +1103 -0
  391. data/ext/cargo-vendor/syn-3.0.9/src/tt.rs +97 -0
  392. data/ext/cargo-vendor/syn-3.0.9/src/ty.rs +1347 -0
  393. data/ext/cargo-vendor/syn-3.0.9/src/verbatim.rs +32 -0
  394. data/ext/cargo-vendor/syn-3.0.9/src/whitespace.rs +65 -0
  395. data/ext/cargo-vendor/syn-3.0.9/tests/common/eq.rs +939 -0
  396. data/ext/cargo-vendor/syn-3.0.9/tests/common/mod.rs +6 -0
  397. data/ext/cargo-vendor/syn-3.0.9/tests/common/parse.rs +51 -0
  398. data/ext/cargo-vendor/syn-3.0.9/tests/common/visit.rs +119 -0
  399. data/ext/cargo-vendor/syn-3.0.9/tests/debug/gen.rs +5394 -0
  400. data/ext/cargo-vendor/syn-3.0.9/tests/debug/mod.rs +147 -0
  401. data/ext/cargo-vendor/syn-3.0.9/tests/macros/mod.rs +7 -0
  402. data/ext/cargo-vendor/syn-3.0.9/tests/regression/issue1108.rs +5 -0
  403. data/ext/cargo-vendor/syn-3.0.9/tests/regression/issue1235.rs +32 -0
  404. data/ext/cargo-vendor/syn-3.0.9/tests/regression.rs +5 -0
  405. data/ext/cargo-vendor/syn-3.0.9/tests/repo/mod.rs +789 -0
  406. data/ext/cargo-vendor/syn-3.0.9/tests/repo/progress.rs +37 -0
  407. data/ext/cargo-vendor/syn-3.0.9/tests/snapshot/mod.rs +68 -0
  408. data/ext/cargo-vendor/syn-3.0.9/tests/test_attribute.rs +231 -0
  409. data/ext/cargo-vendor/syn-3.0.9/tests/test_derive_input.rs +801 -0
  410. data/ext/cargo-vendor/syn-3.0.9/tests/test_expr.rs +1721 -0
  411. data/ext/cargo-vendor/syn-3.0.9/tests/test_generics.rs +363 -0
  412. data/ext/cargo-vendor/syn-3.0.9/tests/test_grouping.rs +59 -0
  413. data/ext/cargo-vendor/syn-3.0.9/tests/test_ident.rs +87 -0
  414. data/ext/cargo-vendor/syn-3.0.9/tests/test_item.rs +374 -0
  415. data/ext/cargo-vendor/syn-3.0.9/tests/test_lit.rs +335 -0
  416. data/ext/cargo-vendor/syn-3.0.9/tests/test_meta.rs +180 -0
  417. data/ext/cargo-vendor/syn-3.0.9/tests/test_parse_buffer.rs +104 -0
  418. data/ext/cargo-vendor/syn-3.0.9/tests/test_parse_quote.rs +175 -0
  419. data/ext/cargo-vendor/syn-3.0.9/tests/test_parse_stream.rs +187 -0
  420. data/ext/cargo-vendor/syn-3.0.9/tests/test_pat.rs +158 -0
  421. data/ext/cargo-vendor/syn-3.0.9/tests/test_path.rs +117 -0
  422. data/ext/cargo-vendor/syn-3.0.9/tests/test_precedence.rs +560 -0
  423. data/ext/cargo-vendor/syn-3.0.9/tests/test_punctuated.rs +92 -0
  424. data/ext/cargo-vendor/syn-3.0.9/tests/test_receiver.rs +275 -0
  425. data/ext/cargo-vendor/syn-3.0.9/tests/test_round_trip.rs +226 -0
  426. data/ext/cargo-vendor/syn-3.0.9/tests/test_shebang.rs +77 -0
  427. data/ext/cargo-vendor/syn-3.0.9/tests/test_size.rs +54 -0
  428. data/ext/cargo-vendor/syn-3.0.9/tests/test_stmt.rs +378 -0
  429. data/ext/cargo-vendor/syn-3.0.9/tests/test_token_trees.rs +38 -0
  430. data/ext/cargo-vendor/syn-3.0.9/tests/test_ty.rs +479 -0
  431. data/ext/cargo-vendor/syn-3.0.9/tests/test_unparenthesize.rs +71 -0
  432. data/ext/cargo-vendor/syn-3.0.9/tests/test_visibility.rs +193 -0
  433. data/ext/cargo-vendor/syn-3.0.9/tests/zzz_stable.rs +33 -0
  434. data/ext/code_ownership/Cargo.toml +2 -2
  435. data/ext/code_ownership/src/lib.rs +15 -3
  436. data/lib/code_ownership/version.rb +1 -1
  437. data/lib/code_ownership.rb +4 -1
  438. metadata +739 -723
  439. data/ext/cargo-vendor/ahash-0.7.8/.cargo-checksum.json +0 -1
  440. data/ext/cargo-vendor/ahash-0.7.8/.cargo_vcs_info.json +0 -6
  441. data/ext/cargo-vendor/ahash-0.7.8/.github/workflows/rust.yml +0 -151
  442. data/ext/cargo-vendor/ahash-0.7.8/Cargo.toml +0 -149
  443. data/ext/cargo-vendor/ahash-0.7.8/Cargo.toml.orig +0 -96
  444. data/ext/cargo-vendor/ahash-0.7.8/FAQ.md +0 -118
  445. data/ext/cargo-vendor/ahash-0.7.8/LICENSE-APACHE +0 -201
  446. data/ext/cargo-vendor/ahash-0.7.8/LICENSE-MIT +0 -25
  447. data/ext/cargo-vendor/ahash-0.7.8/README.md +0 -110
  448. data/ext/cargo-vendor/ahash-0.7.8/build.rs +0 -47
  449. data/ext/cargo-vendor/ahash-0.7.8/rustfmt.toml +0 -1
  450. data/ext/cargo-vendor/ahash-0.7.8/src/aes_hash.rs +0 -440
  451. data/ext/cargo-vendor/ahash-0.7.8/src/convert.rs +0 -167
  452. data/ext/cargo-vendor/ahash-0.7.8/src/fallback_hash.rs +0 -392
  453. data/ext/cargo-vendor/ahash-0.7.8/src/hash_map.rs +0 -371
  454. data/ext/cargo-vendor/ahash-0.7.8/src/hash_quality_test.rs +0 -517
  455. data/ext/cargo-vendor/ahash-0.7.8/src/hash_set.rs +0 -313
  456. data/ext/cargo-vendor/ahash-0.7.8/src/lib.rs +0 -263
  457. data/ext/cargo-vendor/ahash-0.7.8/src/operations.rs +0 -330
  458. data/ext/cargo-vendor/ahash-0.7.8/src/random_state.rs +0 -363
  459. data/ext/cargo-vendor/ahash-0.7.8/src/specialize.rs +0 -239
  460. data/ext/cargo-vendor/ahash-0.7.8/tests/bench.rs +0 -154
  461. data/ext/cargo-vendor/ahash-0.7.8/tests/map_tests.rs +0 -203
  462. data/ext/cargo-vendor/ahash-0.7.8/tests/nopanic.rs +0 -72
  463. data/ext/cargo-vendor/bindgen-0.69.5/.cargo-checksum.json +0 -1
  464. data/ext/cargo-vendor/bindgen-0.69.5/.cargo_vcs_info.json +0 -6
  465. data/ext/cargo-vendor/bindgen-0.69.5/Cargo.toml +0 -155
  466. data/ext/cargo-vendor/bindgen-0.69.5/Cargo.toml.orig +0 -74
  467. data/ext/cargo-vendor/bindgen-0.69.5/README.md +0 -89
  468. data/ext/cargo-vendor/bindgen-0.69.5/build.rs +0 -29
  469. data/ext/cargo-vendor/bindgen-0.69.5/callbacks.rs +0 -213
  470. data/ext/cargo-vendor/bindgen-0.69.5/clang.rs +0 -2347
  471. data/ext/cargo-vendor/bindgen-0.69.5/codegen/bitfield_unit.rs +0 -102
  472. data/ext/cargo-vendor/bindgen-0.69.5/codegen/bitfield_unit_tests.rs +0 -260
  473. data/ext/cargo-vendor/bindgen-0.69.5/codegen/dyngen.rs +0 -201
  474. data/ext/cargo-vendor/bindgen-0.69.5/codegen/error.rs +0 -53
  475. data/ext/cargo-vendor/bindgen-0.69.5/codegen/helpers.rs +0 -355
  476. data/ext/cargo-vendor/bindgen-0.69.5/codegen/impl_debug.rs +0 -245
  477. data/ext/cargo-vendor/bindgen-0.69.5/codegen/impl_partialeq.rs +0 -142
  478. data/ext/cargo-vendor/bindgen-0.69.5/codegen/mod.rs +0 -5473
  479. data/ext/cargo-vendor/bindgen-0.69.5/codegen/postprocessing/merge_extern_blocks.rs +0 -72
  480. data/ext/cargo-vendor/bindgen-0.69.5/codegen/postprocessing/sort_semantically.rs +0 -46
  481. data/ext/cargo-vendor/bindgen-0.69.5/codegen/serialize.rs +0 -444
  482. data/ext/cargo-vendor/bindgen-0.69.5/codegen/struct_layout.rs +0 -451
  483. data/ext/cargo-vendor/bindgen-0.69.5/deps.rs +0 -61
  484. data/ext/cargo-vendor/bindgen-0.69.5/diagnostics.rs +0 -189
  485. data/ext/cargo-vendor/bindgen-0.69.5/extra_assertions.rs +0 -17
  486. data/ext/cargo-vendor/bindgen-0.69.5/features.rs +0 -296
  487. data/ext/cargo-vendor/bindgen-0.69.5/ir/analysis/derive.rs +0 -732
  488. data/ext/cargo-vendor/bindgen-0.69.5/ir/analysis/has_destructor.rs +0 -176
  489. data/ext/cargo-vendor/bindgen-0.69.5/ir/analysis/has_float.rs +0 -252
  490. data/ext/cargo-vendor/bindgen-0.69.5/ir/analysis/has_type_param_in_array.rs +0 -252
  491. data/ext/cargo-vendor/bindgen-0.69.5/ir/analysis/has_vtable.rs +0 -240
  492. data/ext/cargo-vendor/bindgen-0.69.5/ir/analysis/mod.rs +0 -400
  493. data/ext/cargo-vendor/bindgen-0.69.5/ir/analysis/sizedness.rs +0 -361
  494. data/ext/cargo-vendor/bindgen-0.69.5/ir/analysis/template_params.rs +0 -607
  495. data/ext/cargo-vendor/bindgen-0.69.5/ir/annotations.rs +0 -256
  496. data/ext/cargo-vendor/bindgen-0.69.5/ir/comment.rs +0 -100
  497. data/ext/cargo-vendor/bindgen-0.69.5/ir/comp.rs +0 -1896
  498. data/ext/cargo-vendor/bindgen-0.69.5/ir/context.rs +0 -3038
  499. data/ext/cargo-vendor/bindgen-0.69.5/ir/derive.rs +0 -135
  500. data/ext/cargo-vendor/bindgen-0.69.5/ir/dot.rs +0 -86
  501. data/ext/cargo-vendor/bindgen-0.69.5/ir/enum_ty.rs +0 -323
  502. data/ext/cargo-vendor/bindgen-0.69.5/ir/function.rs +0 -839
  503. data/ext/cargo-vendor/bindgen-0.69.5/ir/int.rs +0 -127
  504. data/ext/cargo-vendor/bindgen-0.69.5/ir/item.rs +0 -2034
  505. data/ext/cargo-vendor/bindgen-0.69.5/ir/item_kind.rs +0 -135
  506. data/ext/cargo-vendor/bindgen-0.69.5/ir/layout.rs +0 -138
  507. data/ext/cargo-vendor/bindgen-0.69.5/ir/module.rs +0 -96
  508. data/ext/cargo-vendor/bindgen-0.69.5/ir/objc.rs +0 -354
  509. data/ext/cargo-vendor/bindgen-0.69.5/ir/template.rs +0 -342
  510. data/ext/cargo-vendor/bindgen-0.69.5/ir/traversal.rs +0 -479
  511. data/ext/cargo-vendor/bindgen-0.69.5/ir/ty.rs +0 -1281
  512. data/ext/cargo-vendor/bindgen-0.69.5/ir/var.rs +0 -488
  513. data/ext/cargo-vendor/bindgen-0.69.5/lib.rs +0 -1380
  514. data/ext/cargo-vendor/bindgen-0.69.5/log_stubs.rs +0 -32
  515. data/ext/cargo-vendor/bindgen-0.69.5/options/as_args.rs +0 -52
  516. data/ext/cargo-vendor/bindgen-0.69.5/options/mod.rs +0 -2079
  517. data/ext/cargo-vendor/bindgen-0.69.5/regex_set.rs +0 -204
  518. data/ext/cargo-vendor/bindgen-0.69.5/time.rs +0 -52
  519. data/ext/cargo-vendor/codeowners-0.3.3/.cargo-checksum.json +0 -1
  520. data/ext/cargo-vendor/codeowners-0.3.3/.github/workflows/audit.yml +0 -19
  521. data/ext/cargo-vendor/codeowners-0.3.3/.github/workflows/ci.yml +0 -169
  522. data/ext/cargo-vendor/codeowners-0.3.3/Cargo.lock +0 -1264
  523. data/ext/cargo-vendor/codeowners-0.3.3/Cargo.toml +0 -132
  524. data/ext/cargo-vendor/codeowners-0.3.3/rust-toolchain.toml +0 -4
  525. data/ext/cargo-vendor/codeowners-0.3.3/src/cache/file.rs +0 -179
  526. data/ext/cargo-vendor/codeowners-0.3.3/src/cache/mod.rs +0 -29
  527. data/ext/cargo-vendor/codeowners-0.3.3/src/cache/noop.rs +0 -26
  528. data/ext/cargo-vendor/codeowners-0.3.3/src/cli.rs +0 -138
  529. data/ext/cargo-vendor/codeowners-0.3.3/src/main.rs +0 -43
  530. data/ext/cargo-vendor/codeowners-0.3.3/src/ownership/file_owner_resolver.rs +0 -416
  531. data/ext/cargo-vendor/codeowners-0.3.3/src/ownership/validator.rs +0 -285
  532. data/ext/cargo-vendor/codeowners-0.3.3/src/ownership.rs +0 -224
  533. data/ext/cargo-vendor/codeowners-0.3.3/src/project.rs +0 -232
  534. data/ext/cargo-vendor/codeowners-0.3.3/src/project_builder.rs +0 -404
  535. data/ext/cargo-vendor/codeowners-0.3.3/src/project_file_builder.rs +0 -113
  536. data/ext/cargo-vendor/codeowners-0.3.3/src/runner/api.rs +0 -142
  537. data/ext/cargo-vendor/codeowners-0.3.3/src/runner/types.rs +0 -38
  538. data/ext/cargo-vendor/codeowners-0.3.3/src/runner.rs +0 -483
  539. data/ext/cargo-vendor/codeowners-0.3.3/tests/common/mod.rs +0 -180
  540. data/ext/cargo-vendor/codeowners-0.3.3/tests/executable_name_config_test.rs +0 -88
  541. data/ext/cargo-vendor/codeowners-0.3.3/tests/fixtures/custom_codeowners_path/docs/CODEOWNERS +0 -14
  542. data/ext/cargo-vendor/codeowners-0.3.3/tests/fixtures/custom_codeowners_path/expected/CODEOWNERS +0 -14
  543. data/ext/cargo-vendor/codeowners-0.3.3/tests/fixtures/valid_project/.github/CODEOWNERS +0 -41
  544. data/ext/cargo-vendor/codeowners-0.3.3/tests/fixtures/valid_project_with_overrides/.github/CODEOWNERS +0 -53
  545. data/ext/cargo-vendor/codeowners-0.3.3/tests/invalid_project_test.rs +0 -174
  546. data/ext/cargo-vendor/codeowners-0.3.3/tests/valid_project_test.rs +0 -348
  547. data/ext/cargo-vendor/error-stack-0.5.0/.cargo-checksum.json +0 -1
  548. data/ext/cargo-vendor/error-stack-0.5.0/.cargo_vcs_info.json +0 -6
  549. data/ext/cargo-vendor/error-stack-0.5.0/.justfile +0 -58
  550. data/ext/cargo-vendor/error-stack-0.5.0/CHANGELOG.md +0 -109
  551. data/ext/cargo-vendor/error-stack-0.5.0/Cargo.lock +0 -790
  552. data/ext/cargo-vendor/error-stack-0.5.0/Cargo.toml +0 -334
  553. data/ext/cargo-vendor/error-stack-0.5.0/Cargo.toml.orig +0 -87
  554. data/ext/cargo-vendor/error-stack-0.5.0/README.md +0 -151
  555. data/ext/cargo-vendor/error-stack-0.5.0/build.rs +0 -29
  556. data/ext/cargo-vendor/error-stack-0.5.0/examples/demo.rs +0 -115
  557. data/ext/cargo-vendor/error-stack-0.5.0/examples/detect.rs +0 -68
  558. data/ext/cargo-vendor/error-stack-0.5.0/examples/exit_code.rs +0 -24
  559. data/ext/cargo-vendor/error-stack-0.5.0/examples/parse_config.rs +0 -51
  560. data/ext/cargo-vendor/error-stack-0.5.0/rust-toolchain.toml +0 -4
  561. data/ext/cargo-vendor/error-stack-0.5.0/src/compat/anyhow.rs +0 -34
  562. data/ext/cargo-vendor/error-stack-0.5.0/src/compat/eyre.rs +0 -31
  563. data/ext/cargo-vendor/error-stack-0.5.0/src/compat/mod.rs +0 -36
  564. data/ext/cargo-vendor/error-stack-0.5.0/src/context.rs +0 -132
  565. data/ext/cargo-vendor/error-stack-0.5.0/src/error.rs +0 -47
  566. data/ext/cargo-vendor/error-stack-0.5.0/src/fmt/charset.rs +0 -114
  567. data/ext/cargo-vendor/error-stack-0.5.0/src/fmt/color.rs +0 -330
  568. data/ext/cargo-vendor/error-stack-0.5.0/src/fmt/config.rs +0 -67
  569. data/ext/cargo-vendor/error-stack-0.5.0/src/fmt/hook.rs +0 -545
  570. data/ext/cargo-vendor/error-stack-0.5.0/src/fmt/location.rs +0 -33
  571. data/ext/cargo-vendor/error-stack-0.5.0/src/fmt/mod.rs +0 -1177
  572. data/ext/cargo-vendor/error-stack-0.5.0/src/frame/frame_impl.rs +0 -262
  573. data/ext/cargo-vendor/error-stack-0.5.0/src/frame/kind.rs +0 -37
  574. data/ext/cargo-vendor/error-stack-0.5.0/src/frame/mod.rs +0 -122
  575. data/ext/cargo-vendor/error-stack-0.5.0/src/future.rs +0 -307
  576. data/ext/cargo-vendor/error-stack-0.5.0/src/hook/context.rs +0 -365
  577. data/ext/cargo-vendor/error-stack-0.5.0/src/hook/mod.rs +0 -239
  578. data/ext/cargo-vendor/error-stack-0.5.0/src/iter.rs +0 -269
  579. data/ext/cargo-vendor/error-stack-0.5.0/src/lib.rs +0 -545
  580. data/ext/cargo-vendor/error-stack-0.5.0/src/macros.rs +0 -253
  581. data/ext/cargo-vendor/error-stack-0.5.0/src/report.rs +0 -740
  582. data/ext/cargo-vendor/error-stack-0.5.0/src/result.rs +0 -267
  583. data/ext/cargo-vendor/error-stack-0.5.0/src/serde.rs +0 -154
  584. data/ext/cargo-vendor/error-stack-0.5.0/tests/common.rs +0 -342
  585. data/ext/cargo-vendor/error-stack-0.5.0/tests/compiletest.rs +0 -7
  586. data/ext/cargo-vendor/error-stack-0.5.0/tests/snapshots/doc/fmt__charset_ascii.snap +0 -9
  587. data/ext/cargo-vendor/error-stack-0.5.0/tests/snapshots/doc/fmt__charset_utf8.snap +0 -9
  588. data/ext/cargo-vendor/error-stack-0.5.0/tests/snapshots/doc/fmt__diagnostics_add.snap +0 -10
  589. data/ext/cargo-vendor/error-stack-0.5.0/tests/snapshots/doc/fmt__doc.snap +0 -12
  590. data/ext/cargo-vendor/error-stack-0.5.0/tests/snapshots/doc/fmt__emit.snap +0 -16
  591. data/ext/cargo-vendor/error-stack-0.5.0/tests/snapshots/doc/fmt__emit_alt.snap +0 -28
  592. data/ext/cargo-vendor/error-stack-0.5.0/tests/snapshots/doc/fmt__hookcontext_cast.snap +0 -11
  593. data/ext/cargo-vendor/error-stack-0.5.0/tests/snapshots/doc/fmt__hookcontext_decrement.snap +0 -10
  594. data/ext/cargo-vendor/error-stack-0.5.0/tests/snapshots/doc/fmt__hookcontext_emit.snap +0 -16
  595. data/ext/cargo-vendor/error-stack-0.5.0/tests/snapshots/doc/fmt__hookcontext_increment.snap +0 -10
  596. data/ext/cargo-vendor/error-stack-0.5.0/tests/snapshots/doc/fmt__hookcontext_storage.snap +0 -10
  597. data/ext/cargo-vendor/error-stack-0.5.0/tests/snapshots/doc/fmt__preference_color.snap +0 -9
  598. data/ext/cargo-vendor/error-stack-0.5.0/tests/snapshots/doc/fmt__preference_emphasis.snap +0 -9
  599. data/ext/cargo-vendor/error-stack-0.5.0/tests/snapshots/doc/fmt__preference_none.snap +0 -9
  600. data/ext/cargo-vendor/error-stack-0.5.0/tests/snapshots/doc/fmt_doc_alt.snap +0 -15
  601. data/ext/cargo-vendor/error-stack-0.5.0/tests/snapshots/doc/hook__debug_hook.snap +0 -9
  602. data/ext/cargo-vendor/error-stack-0.5.0/tests/snapshots/doc/hook__debug_hook_provide.snap +0 -10
  603. data/ext/cargo-vendor/error-stack-0.5.0/tests/snapshots/doc/lib__suggestion.snap +0 -13
  604. data/ext/cargo-vendor/error-stack-0.5.0/tests/snapshots/doc/report_debug__doc.snap +0 -14
  605. data/ext/cargo-vendor/error-stack-0.5.0/tests/snapshots/test_debug__full__complex.snap +0 -49
  606. data/ext/cargo-vendor/error-stack-0.5.0/tests/snapshots/test_debug__full__hook_location.snap +0 -15
  607. data/ext/cargo-vendor/error-stack-0.5.0/tests/snapshots/test_debug__full__linear.snap +0 -27
  608. data/ext/cargo-vendor/error-stack-0.5.0/tests/snapshots/test_debug__full__linear_ext.snap +0 -27
  609. data/ext/cargo-vendor/error-stack-0.5.0/tests/snapshots/test_debug__full__multiline_context.snap +0 -25
  610. data/ext/cargo-vendor/error-stack-0.5.0/tests/snapshots/test_debug__full__sources.snap +0 -48
  611. data/ext/cargo-vendor/error-stack-0.5.0/tests/snapshots/test_debug__full__sources_transparent.snap +0 -50
  612. data/ext/cargo-vendor/error-stack-0.5.0/tests/snapshots/test_debug__sources_nested.snap +0 -78
  613. data/ext/cargo-vendor/error-stack-0.5.0/tests/snapshots/test_debug__sources_nested@backtrace.snap +0 -104
  614. data/ext/cargo-vendor/error-stack-0.5.0/tests/snapshots/test_debug__sources_nested@spantrace-backtrace.snap +0 -128
  615. data/ext/cargo-vendor/error-stack-0.5.0/tests/snapshots/test_debug__sources_nested@spantrace.snap +0 -104
  616. data/ext/cargo-vendor/error-stack-0.5.0/tests/snapshots/test_debug__sources_nested_alternate.snap +0 -78
  617. data/ext/cargo-vendor/error-stack-0.5.0/tests/snapshots/test_debug__sources_nested_alternate@backtrace.snap +0 -104
  618. data/ext/cargo-vendor/error-stack-0.5.0/tests/snapshots/test_debug__sources_nested_alternate@spantrace-backtrace.snap +0 -128
  619. data/ext/cargo-vendor/error-stack-0.5.0/tests/snapshots/test_debug__sources_nested_alternate@spantrace.snap +0 -104
  620. data/ext/cargo-vendor/error-stack-0.5.0/tests/snapshots/test_serialize__attachment.snap +0 -13
  621. data/ext/cargo-vendor/error-stack-0.5.0/tests/snapshots/test_serialize__context.snap +0 -19
  622. data/ext/cargo-vendor/error-stack-0.5.0/tests/snapshots/test_serialize__multiple_sources.snap +0 -30
  623. data/ext/cargo-vendor/error-stack-0.5.0/tests/snapshots/test_serialize__multiple_sources_at_root.snap +0 -20
  624. data/ext/cargo-vendor/error-stack-0.5.0/tests/test_attach.rs +0 -68
  625. data/ext/cargo-vendor/error-stack-0.5.0/tests/test_attach_printable.rs +0 -74
  626. data/ext/cargo-vendor/error-stack-0.5.0/tests/test_backtrace.rs +0 -62
  627. data/ext/cargo-vendor/error-stack-0.5.0/tests/test_change_context.rs +0 -68
  628. data/ext/cargo-vendor/error-stack-0.5.0/tests/test_compatibility.rs +0 -233
  629. data/ext/cargo-vendor/error-stack-0.5.0/tests/test_conversion.rs +0 -112
  630. data/ext/cargo-vendor/error-stack-0.5.0/tests/test_debug.rs +0 -628
  631. data/ext/cargo-vendor/error-stack-0.5.0/tests/test_display.rs +0 -32
  632. data/ext/cargo-vendor/error-stack-0.5.0/tests/test_downcast.rs +0 -41
  633. data/ext/cargo-vendor/error-stack-0.5.0/tests/test_extend.rs +0 -78
  634. data/ext/cargo-vendor/error-stack-0.5.0/tests/test_frame.rs +0 -126
  635. data/ext/cargo-vendor/error-stack-0.5.0/tests/test_iter.rs +0 -99
  636. data/ext/cargo-vendor/error-stack-0.5.0/tests/test_macros.rs +0 -94
  637. data/ext/cargo-vendor/error-stack-0.5.0/tests/test_provision.rs +0 -51
  638. data/ext/cargo-vendor/error-stack-0.5.0/tests/test_serialize.rs +0 -70
  639. data/ext/cargo-vendor/error-stack-0.5.0/tests/test_span_trace.rs +0 -92
  640. data/ext/cargo-vendor/error-stack-0.5.0/tests/ui/macro_invalid_args.rs +0 -60
  641. data/ext/cargo-vendor/error-stack-0.5.0/tests/ui/macro_invalid_args.stderr +0 -101
  642. data/ext/cargo-vendor/error-stack-0.5.0/tests/ui/must_use.rs +0 -20
  643. data/ext/cargo-vendor/error-stack-0.5.0/tests/ui/must_use.stderr +0 -15
  644. data/ext/cargo-vendor/getrandom-0.2.16/.cargo-checksum.json +0 -1
  645. data/ext/cargo-vendor/getrandom-0.2.16/.cargo_vcs_info.json +0 -6
  646. data/ext/cargo-vendor/getrandom-0.2.16/CHANGELOG.md +0 -498
  647. data/ext/cargo-vendor/getrandom-0.2.16/Cargo.lock +0 -354
  648. data/ext/cargo-vendor/getrandom-0.2.16/Cargo.toml +0 -121
  649. data/ext/cargo-vendor/getrandom-0.2.16/Cargo.toml.orig +0 -67
  650. data/ext/cargo-vendor/getrandom-0.2.16/LICENSE-APACHE +0 -201
  651. data/ext/cargo-vendor/getrandom-0.2.16/LICENSE-MIT +0 -26
  652. data/ext/cargo-vendor/getrandom-0.2.16/README.md +0 -81
  653. data/ext/cargo-vendor/getrandom-0.2.16/SECURITY.md +0 -13
  654. data/ext/cargo-vendor/getrandom-0.2.16/benches/buffer.rs +0 -71
  655. data/ext/cargo-vendor/getrandom-0.2.16/src/apple-other.rs +0 -24
  656. data/ext/cargo-vendor/getrandom-0.2.16/src/custom.rs +0 -105
  657. data/ext/cargo-vendor/getrandom-0.2.16/src/error.rs +0 -189
  658. data/ext/cargo-vendor/getrandom-0.2.16/src/error_impls.rs +0 -15
  659. data/ext/cargo-vendor/getrandom-0.2.16/src/espidf.rs +0 -18
  660. data/ext/cargo-vendor/getrandom-0.2.16/src/fuchsia.rs +0 -13
  661. data/ext/cargo-vendor/getrandom-0.2.16/src/getentropy.rs +0 -21
  662. data/ext/cargo-vendor/getrandom-0.2.16/src/getrandom.rs +0 -25
  663. data/ext/cargo-vendor/getrandom-0.2.16/src/hermit.rs +0 -29
  664. data/ext/cargo-vendor/getrandom-0.2.16/src/js.rs +0 -155
  665. data/ext/cargo-vendor/getrandom-0.2.16/src/lazy.rs +0 -56
  666. data/ext/cargo-vendor/getrandom-0.2.16/src/lib.rs +0 -407
  667. data/ext/cargo-vendor/getrandom-0.2.16/src/linux_android.rs +0 -7
  668. data/ext/cargo-vendor/getrandom-0.2.16/src/linux_android_with_fallback.rs +0 -33
  669. data/ext/cargo-vendor/getrandom-0.2.16/src/netbsd.rs +0 -46
  670. data/ext/cargo-vendor/getrandom-0.2.16/src/rdrand.rs +0 -121
  671. data/ext/cargo-vendor/getrandom-0.2.16/src/solaris.rs +0 -34
  672. data/ext/cargo-vendor/getrandom-0.2.16/src/solid.rs +0 -18
  673. data/ext/cargo-vendor/getrandom-0.2.16/src/use_file.rs +0 -120
  674. data/ext/cargo-vendor/getrandom-0.2.16/src/util.rs +0 -35
  675. data/ext/cargo-vendor/getrandom-0.2.16/src/util_libc.rs +0 -162
  676. data/ext/cargo-vendor/getrandom-0.2.16/src/vxworks.rs +0 -29
  677. data/ext/cargo-vendor/getrandom-0.2.16/src/wasi.rs +0 -17
  678. data/ext/cargo-vendor/getrandom-0.2.16/src/windows.rs +0 -59
  679. data/ext/cargo-vendor/getrandom-0.2.16/tests/common/mod.rs +0 -100
  680. data/ext/cargo-vendor/getrandom-0.2.16/tests/custom.rs +0 -54
  681. data/ext/cargo-vendor/getrandom-0.2.16/tests/normal.rs +0 -11
  682. data/ext/cargo-vendor/getrandom-0.2.16/tests/rdrand.rs +0 -22
  683. data/ext/cargo-vendor/hashbrown-0.12.3/.cargo-checksum.json +0 -1
  684. data/ext/cargo-vendor/hashbrown-0.12.3/.cargo_vcs_info.json +0 -6
  685. data/ext/cargo-vendor/hashbrown-0.12.3/CHANGELOG.md +0 -402
  686. data/ext/cargo-vendor/hashbrown-0.12.3/Cargo.toml +0 -113
  687. data/ext/cargo-vendor/hashbrown-0.12.3/Cargo.toml.orig +0 -60
  688. data/ext/cargo-vendor/hashbrown-0.12.3/LICENSE-APACHE +0 -201
  689. data/ext/cargo-vendor/hashbrown-0.12.3/LICENSE-MIT +0 -25
  690. data/ext/cargo-vendor/hashbrown-0.12.3/README.md +0 -126
  691. data/ext/cargo-vendor/hashbrown-0.12.3/benches/bench.rs +0 -331
  692. data/ext/cargo-vendor/hashbrown-0.12.3/benches/insert_unique_unchecked.rs +0 -32
  693. data/ext/cargo-vendor/hashbrown-0.12.3/clippy.toml +0 -1
  694. data/ext/cargo-vendor/hashbrown-0.12.3/src/external_trait_impls/mod.rs +0 -4
  695. data/ext/cargo-vendor/hashbrown-0.12.3/src/external_trait_impls/rayon/helpers.rs +0 -27
  696. data/ext/cargo-vendor/hashbrown-0.12.3/src/external_trait_impls/rayon/map.rs +0 -734
  697. data/ext/cargo-vendor/hashbrown-0.12.3/src/external_trait_impls/rayon/mod.rs +0 -4
  698. data/ext/cargo-vendor/hashbrown-0.12.3/src/external_trait_impls/rayon/raw.rs +0 -231
  699. data/ext/cargo-vendor/hashbrown-0.12.3/src/external_trait_impls/rayon/set.rs +0 -659
  700. data/ext/cargo-vendor/hashbrown-0.12.3/src/external_trait_impls/serde.rs +0 -201
  701. data/ext/cargo-vendor/hashbrown-0.12.3/src/lib.rs +0 -150
  702. data/ext/cargo-vendor/hashbrown-0.12.3/src/macros.rs +0 -70
  703. data/ext/cargo-vendor/hashbrown-0.12.3/src/map.rs +0 -8408
  704. data/ext/cargo-vendor/hashbrown-0.12.3/src/raw/alloc.rs +0 -73
  705. data/ext/cargo-vendor/hashbrown-0.12.3/src/raw/bitmask.rs +0 -122
  706. data/ext/cargo-vendor/hashbrown-0.12.3/src/raw/generic.rs +0 -154
  707. data/ext/cargo-vendor/hashbrown-0.12.3/src/raw/mod.rs +0 -2460
  708. data/ext/cargo-vendor/hashbrown-0.12.3/src/raw/sse2.rs +0 -146
  709. data/ext/cargo-vendor/hashbrown-0.12.3/src/rustc_entry.rs +0 -630
  710. data/ext/cargo-vendor/hashbrown-0.12.3/src/scopeguard.rs +0 -74
  711. data/ext/cargo-vendor/hashbrown-0.12.3/src/set.rs +0 -2790
  712. data/ext/cargo-vendor/hashbrown-0.12.3/tests/hasher.rs +0 -65
  713. data/ext/cargo-vendor/hashbrown-0.12.3/tests/rayon.rs +0 -533
  714. data/ext/cargo-vendor/hashbrown-0.12.3/tests/serde.rs +0 -65
  715. data/ext/cargo-vendor/hashbrown-0.12.3/tests/set.rs +0 -34
  716. data/ext/cargo-vendor/lazycell-1.3.0/.cargo-checksum.json +0 -1
  717. data/ext/cargo-vendor/lazycell-1.3.0/.cargo_vcs_info.json +0 -5
  718. data/ext/cargo-vendor/lazycell-1.3.0/CHANGELOG.md +0 -197
  719. data/ext/cargo-vendor/lazycell-1.3.0/Cargo.toml +0 -34
  720. data/ext/cargo-vendor/lazycell-1.3.0/Cargo.toml.orig +0 -27
  721. data/ext/cargo-vendor/lazycell-1.3.0/LICENSE-APACHE +0 -201
  722. data/ext/cargo-vendor/lazycell-1.3.0/LICENSE-MIT +0 -26
  723. data/ext/cargo-vendor/lazycell-1.3.0/README.md +0 -73
  724. data/ext/cargo-vendor/lazycell-1.3.0/src/lib.rs +0 -680
  725. data/ext/cargo-vendor/lazycell-1.3.0/src/serde_impl.rs +0 -86
  726. data/ext/cargo-vendor/lru-0.7.8/.cargo-checksum.json +0 -1
  727. data/ext/cargo-vendor/lru-0.7.8/.cargo_vcs_info.json +0 -6
  728. data/ext/cargo-vendor/lru-0.7.8/.github/workflows/main.yml +0 -54
  729. data/ext/cargo-vendor/lru-0.7.8/CHANGELOG.md +0 -194
  730. data/ext/cargo-vendor/lru-0.7.8/Cargo.toml +0 -42
  731. data/ext/cargo-vendor/lru-0.7.8/Cargo.toml.orig +0 -22
  732. data/ext/cargo-vendor/lru-0.7.8/LICENSE +0 -21
  733. data/ext/cargo-vendor/lru-0.7.8/README.md +0 -62
  734. data/ext/cargo-vendor/lru-0.7.8/src/lib.rs +0 -1872
  735. data/ext/cargo-vendor/rb-sys-0.9.117/.cargo-checksum.json +0 -1
  736. data/ext/cargo-vendor/rb-sys-0.9.117/.cargo_vcs_info.json +0 -6
  737. data/ext/cargo-vendor/rb-sys-0.9.117/Cargo.lock +0 -393
  738. data/ext/cargo-vendor/rb-sys-0.9.117/Cargo.toml +0 -70
  739. data/ext/cargo-vendor/rb-sys-0.9.117/Cargo.toml.orig +0 -57
  740. data/ext/cargo-vendor/rb-sys-0.9.117/build/main.rs +0 -286
  741. data/ext/cargo-vendor/rb-sys-0.9.117/build/stable_api_config.rs +0 -155
  742. data/ext/cargo-vendor/rb-sys-0.9.117/build/version.rs +0 -50
  743. data/ext/cargo-vendor/rb-sys-0.9.117/src/bindings.rs +0 -21
  744. data/ext/cargo-vendor/rb-sys-0.9.117/src/macros.rs +0 -371
  745. data/ext/cargo-vendor/rb-sys-0.9.117/src/memory.rs +0 -53
  746. data/ext/cargo-vendor/rb-sys-0.9.117/src/stable_api/compiled.c +0 -179
  747. data/ext/cargo-vendor/rb-sys-0.9.117/src/stable_api/compiled.rs +0 -257
  748. data/ext/cargo-vendor/rb-sys-0.9.117/src/stable_api/ruby_2_6.rs +0 -324
  749. data/ext/cargo-vendor/rb-sys-0.9.117/src/stable_api/ruby_2_7.rs +0 -324
  750. data/ext/cargo-vendor/rb-sys-0.9.117/src/stable_api/ruby_3_0.rs +0 -332
  751. data/ext/cargo-vendor/rb-sys-0.9.117/src/stable_api/ruby_3_1.rs +0 -325
  752. data/ext/cargo-vendor/rb-sys-0.9.117/src/stable_api/ruby_3_2.rs +0 -323
  753. data/ext/cargo-vendor/rb-sys-0.9.117/src/stable_api/ruby_3_3.rs +0 -339
  754. data/ext/cargo-vendor/rb-sys-0.9.117/src/stable_api/ruby_3_4.rs +0 -339
  755. data/ext/cargo-vendor/rb-sys-0.9.117/src/stable_api.rs +0 -261
  756. data/ext/cargo-vendor/rb-sys-0.9.117/src/utils.rs +0 -89
  757. data/ext/cargo-vendor/rb-sys-build-0.9.117/.cargo-checksum.json +0 -1
  758. data/ext/cargo-vendor/rb-sys-build-0.9.117/.cargo_vcs_info.json +0 -6
  759. data/ext/cargo-vendor/rb-sys-build-0.9.117/Cargo.lock +0 -294
  760. data/ext/cargo-vendor/rb-sys-build-0.9.117/Cargo.toml +0 -71
  761. data/ext/cargo-vendor/rb-sys-build-0.9.117/Cargo.toml.orig +0 -32
  762. data/ext/cargo-vendor/rb-sys-build-0.9.117/src/bindings/stable_api.rs +0 -206
  763. data/ext/cargo-vendor/rb-sys-build-0.9.117/src/bindings.rs +0 -286
  764. data/ext/cargo-vendor/rb-sys-build-0.9.117/src/cc.rs +0 -421
  765. data/ext/cargo-vendor/rb-sys-build-0.9.117/src/rb_config.rs +0 -863
  766. data/ext/cargo-vendor/rb-sys-env-0.2.2/.cargo-checksum.json +0 -1
  767. data/ext/cargo-vendor/rb-sys-env-0.2.2/.cargo_vcs_info.json +0 -6
  768. data/ext/cargo-vendor/rb-sys-env-0.2.2/Cargo.toml +0 -33
  769. data/ext/cargo-vendor/rb-sys-env-0.2.2/Cargo.toml.orig +0 -14
  770. data/ext/cargo-vendor/rb-sys-env-0.2.2/readme.md +0 -119
  771. data/ext/cargo-vendor/rb-sys-env-0.2.2/src/ruby_version.rs +0 -163
  772. data/ext/cargo-vendor/rustc-hash-1.1.0/.cargo-checksum.json +0 -1
  773. data/ext/cargo-vendor/rustc-hash-1.1.0/.cargo_vcs_info.json +0 -5
  774. data/ext/cargo-vendor/rustc-hash-1.1.0/CODE_OF_CONDUCT.md +0 -40
  775. data/ext/cargo-vendor/rustc-hash-1.1.0/Cargo.toml +0 -25
  776. data/ext/cargo-vendor/rustc-hash-1.1.0/Cargo.toml.orig +0 -13
  777. data/ext/cargo-vendor/rustc-hash-1.1.0/LICENSE-APACHE +0 -201
  778. data/ext/cargo-vendor/rustc-hash-1.1.0/README.md +0 -38
  779. data/ext/cargo-vendor/rustc-hash-1.1.0/src/lib.rs +0 -148
  780. data/ext/cargo-vendor/serde-1.0.228/.cargo-checksum.json +0 -1
  781. data/ext/cargo-vendor/serde-1.0.228/.cargo_vcs_info.json +0 -6
  782. data/ext/cargo-vendor/serde-1.0.228/Cargo.lock +0 -66
  783. data/ext/cargo-vendor/serde-1.0.228/Cargo.toml +0 -84
  784. data/ext/cargo-vendor/serde-1.0.228/Cargo.toml.orig +0 -62
  785. data/ext/cargo-vendor/serde-1.0.228/README.md +0 -114
  786. data/ext/cargo-vendor/serde-1.0.228/build.rs +0 -69
  787. data/ext/cargo-vendor/serde-1.0.228/src/core/de/impls.rs +0 -3173
  788. data/ext/cargo-vendor/serde-1.0.228/src/core/lib.rs +0 -121
  789. data/ext/cargo-vendor/serde-1.0.228/src/lib.rs +0 -285
  790. data/ext/cargo-vendor/serde_core-1.0.228/.cargo-checksum.json +0 -1
  791. data/ext/cargo-vendor/serde_core-1.0.228/.cargo_vcs_info.json +0 -6
  792. data/ext/cargo-vendor/serde_core-1.0.228/Cargo.lock +0 -63
  793. data/ext/cargo-vendor/serde_core-1.0.228/Cargo.toml +0 -87
  794. data/ext/cargo-vendor/serde_core-1.0.228/Cargo.toml.orig +0 -70
  795. data/ext/cargo-vendor/serde_core-1.0.228/build.rs +0 -113
  796. data/ext/cargo-vendor/serde_core-1.0.228/src/de/impls.rs +0 -3173
  797. data/ext/cargo-vendor/serde_core-1.0.228/src/lib.rs +0 -121
  798. data/ext/cargo-vendor/serde_derive-1.0.228/.cargo-checksum.json +0 -1
  799. data/ext/cargo-vendor/serde_derive-1.0.228/.cargo_vcs_info.json +0 -6
  800. data/ext/cargo-vendor/serde_derive-1.0.228/Cargo.lock +0 -77
  801. data/ext/cargo-vendor/serde_derive-1.0.228/Cargo.toml +0 -87
  802. data/ext/cargo-vendor/serde_derive-1.0.228/Cargo.toml.orig +0 -42
  803. data/ext/cargo-vendor/serde_derive-1.0.228/README.md +0 -114
  804. data/ext/cargo-vendor/serde_derive-1.0.228/src/bound.rs +0 -410
  805. data/ext/cargo-vendor/serde_derive-1.0.228/src/de/enum_adjacently.rs +0 -323
  806. data/ext/cargo-vendor/serde_derive-1.0.228/src/de/enum_externally.rs +0 -212
  807. data/ext/cargo-vendor/serde_derive-1.0.228/src/de.rs +0 -973
  808. data/ext/cargo-vendor/serde_derive-1.0.228/src/internals/ast.rs +0 -218
  809. data/ext/cargo-vendor/serde_derive-1.0.228/src/internals/attr.rs +0 -1831
  810. data/ext/cargo-vendor/serde_derive-1.0.228/src/internals/ctxt.rs +0 -68
  811. data/ext/cargo-vendor/serde_derive-1.0.228/src/internals/receiver.rs +0 -293
  812. data/ext/cargo-vendor/serde_derive-1.0.228/src/lib.rs +0 -127
  813. data/ext/cargo-vendor/serde_derive-1.0.228/src/pretend.rs +0 -188
  814. data/ext/cargo-vendor/serde_derive-1.0.228/src/ser.rs +0 -1369
  815. data/ext/cargo-vendor/serde_magnus-0.10.0/.cargo-checksum.json +0 -1
  816. data/ext/cargo-vendor/serde_magnus-0.10.0/.cargo_vcs_info.json +0 -6
  817. data/ext/cargo-vendor/serde_magnus-0.10.0/Cargo.lock +0 -387
  818. data/ext/cargo-vendor/serde_magnus-0.10.0/Cargo.toml +0 -162
  819. data/ext/cargo-vendor/serde_magnus-0.10.0/Cargo.toml.orig +0 -28
  820. data/ext/cargo-vendor/serde_magnus-0.10.0/README.md +0 -121
  821. data/ext/cargo-vendor/serde_magnus-0.10.0/src/de/deserializer.rs +0 -185
  822. data/ext/cargo-vendor/version_check-0.9.5/.cargo-checksum.json +0 -1
  823. data/ext/cargo-vendor/version_check-0.9.5/.cargo_vcs_info.json +0 -6
  824. data/ext/cargo-vendor/version_check-0.9.5/.github/workflows/ci.yml +0 -42
  825. data/ext/cargo-vendor/version_check-0.9.5/.travis.yml +0 -6
  826. data/ext/cargo-vendor/version_check-0.9.5/Cargo.toml +0 -38
  827. data/ext/cargo-vendor/version_check-0.9.5/Cargo.toml.orig +0 -13
  828. data/ext/cargo-vendor/version_check-0.9.5/LICENSE-APACHE +0 -201
  829. data/ext/cargo-vendor/version_check-0.9.5/LICENSE-MIT +0 -19
  830. data/ext/cargo-vendor/version_check-0.9.5/README.md +0 -80
  831. data/ext/cargo-vendor/version_check-0.9.5/src/channel.rs +0 -195
  832. data/ext/cargo-vendor/version_check-0.9.5/src/date.rs +0 -203
  833. data/ext/cargo-vendor/version_check-0.9.5/src/lib.rs +0 -528
  834. data/ext/cargo-vendor/version_check-0.9.5/src/version.rs +0 -316
  835. data/ext/cargo-vendor/wasi-0.11.1+wasi-snapshot-preview1/.cargo-checksum.json +0 -1
  836. data/ext/cargo-vendor/wasi-0.11.1+wasi-snapshot-preview1/.cargo_vcs_info.json +0 -6
  837. data/ext/cargo-vendor/wasi-0.11.1+wasi-snapshot-preview1/.github/workflows/main.yml +0 -44
  838. data/ext/cargo-vendor/wasi-0.11.1+wasi-snapshot-preview1/.gitmodules +0 -3
  839. data/ext/cargo-vendor/wasi-0.11.1+wasi-snapshot-preview1/CODE_OF_CONDUCT.md +0 -49
  840. data/ext/cargo-vendor/wasi-0.11.1+wasi-snapshot-preview1/CONTRIBUTING.md +0 -8
  841. data/ext/cargo-vendor/wasi-0.11.1+wasi-snapshot-preview1/Cargo.lock +0 -23
  842. data/ext/cargo-vendor/wasi-0.11.1+wasi-snapshot-preview1/Cargo.toml +0 -59
  843. data/ext/cargo-vendor/wasi-0.11.1+wasi-snapshot-preview1/Cargo.toml.orig +0 -29
  844. data/ext/cargo-vendor/wasi-0.11.1+wasi-snapshot-preview1/LICENSE-APACHE +0 -201
  845. data/ext/cargo-vendor/wasi-0.11.1+wasi-snapshot-preview1/LICENSE-Apache-2.0_WITH_LLVM-exception +0 -220
  846. data/ext/cargo-vendor/wasi-0.11.1+wasi-snapshot-preview1/LICENSE-MIT +0 -23
  847. data/ext/cargo-vendor/wasi-0.11.1+wasi-snapshot-preview1/ORG_CODE_OF_CONDUCT.md +0 -143
  848. data/ext/cargo-vendor/wasi-0.11.1+wasi-snapshot-preview1/README.md +0 -94
  849. data/ext/cargo-vendor/wasi-0.11.1+wasi-snapshot-preview1/SECURITY.md +0 -29
  850. data/ext/cargo-vendor/wasi-0.11.1+wasi-snapshot-preview1/src/lib.rs +0 -47
  851. data/ext/cargo-vendor/wasi-0.11.1+wasi-snapshot-preview1/src/lib_generated.rs +0 -2366
  852. /data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/LICENSE +0 -0
  853. /data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/codegen/postprocessing/mod.rs +0 -0
  854. /data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/ir/mod.rs +0 -0
  855. /data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/options/helpers.rs +0 -0
  856. /data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/parse.rs +0 -0
  857. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/.github/CODEOWNERS +0 -0
  858. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/.github/workflows/dotslash-config.json +0 -0
  859. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/.rustfmt.toml +0 -0
  860. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/.rusty-hook.toml +0 -0
  861. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/AGENTS.md +0 -0
  862. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/CLAUDE.md +0 -0
  863. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/README.md +0 -0
  864. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/dev/run_benchmarks_for_file.sh +0 -0
  865. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/dev/run_benchmarks_for_gv.sh +0 -0
  866. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/src/common_test.rs +0 -0
  867. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/src/config.rs +0 -0
  868. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/src/crosscheck.rs +0 -0
  869. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/src/lib.rs +0 -0
  870. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/src/ownership/codeowners_file_parser.rs +0 -0
  871. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/src/ownership/codeowners_query.rs +0 -0
  872. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/src/ownership/file_generator.rs +0 -0
  873. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/src/ownership/file_owner_finder.rs +0 -0
  874. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/src/ownership/mapper/annotated_file_mapper.rs +0 -0
  875. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/src/ownership/mapper/directory_mapper.rs +0 -0
  876. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/src/ownership/mapper/escaper.rs +0 -0
  877. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/src/ownership/mapper/package_mapper.rs +0 -0
  878. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/src/ownership/mapper/team_gem_mapper.rs +0 -0
  879. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/src/ownership/mapper/team_glob_mapper.rs +0 -0
  880. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/src/ownership/mapper/team_yml_mapper.rs +0 -0
  881. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/src/ownership/mapper.rs +0 -0
  882. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/src/path_utils.rs +0 -0
  883. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/src/tracked_files.rs +0 -0
  884. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/cache_test.rs +0 -0
  885. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/codeowners_path_test.rs +0 -0
  886. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/crosscheck_owners_test.rs +0 -0
  887. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/custom_codeowners_path/config/code_ownership.yml +0 -0
  888. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/custom_codeowners_path/config/teams/test_team.yml +0 -0
  889. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/custom_codeowners_path/ruby/app/models/test.rb +0 -0
  890. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/custom_executable_name/.github/CODEOWNERS +0 -0
  891. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/custom_executable_name/app/foo.rb +0 -0
  892. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/custom_executable_name/config/code_ownership.yml +0 -0
  893. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/custom_executable_name/config/teams/foo.yml +0 -0
  894. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/custom_executable_name/config/teams/payments.yml +0 -0
  895. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/custom_executable_name/ruby/app/payments/foo.rb +0 -0
  896. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/default_executable_name/.github/CODEOWNERS +0 -0
  897. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/default_executable_name/app/bar.rb +0 -0
  898. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/default_executable_name/config/code_ownership.yml +0 -0
  899. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/default_executable_name/config/teams/bar.yml +0 -0
  900. /data/ext/cargo-vendor/{codeowners-0.3.3/tests/fixtures/multiple-directory-owners/app/services → codeowners-0.5.0/tests/fixtures/directory-codeowner-github-team/app/by_name}/.codeowner +0 -0
  901. /data/ext/cargo-vendor/{codeowners-0.3.3/tests/fixtures/multiple-directory-owners → codeowners-0.5.0/tests/fixtures/directory-codeowner-github-team}/config/code_ownership.yml +0 -0
  902. /data/ext/cargo-vendor/{codeowners-0.3.3/tests/fixtures/multiple-directory-owners → codeowners-0.5.0/tests/fixtures/directory-codeowner-github-team}/config/teams/foo.yml +0 -0
  903. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/invalid_project/.github/CODEOWNERS +0 -0
  904. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/invalid_project/config/code_ownership.yml +0 -0
  905. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/invalid_project/config/teams/payments.yml +0 -0
  906. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/invalid_project/config/teams/payroll.yml +0 -0
  907. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/invalid_project/gems/payroll_calculator/calculator.rb +0 -0
  908. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/invalid_project/ruby/app/models/bank_account.rb +0 -0
  909. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/invalid_project/ruby/app/models/blockchain.rb +0 -0
  910. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/invalid_project/ruby/app/models/payroll.rb +0 -0
  911. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/invalid_project/ruby/app/payments/nacha.rb +0 -0
  912. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/invalid_project/ruby/app/services/.codeowner +0 -0
  913. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/invalid_project/ruby/app/services/multi_owned.rb +0 -0
  914. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/invalid_project/ruby/app/unowned.rb +0 -0
  915. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/invalid_project/ruby/packages/payroll_flow/package.yml +0 -0
  916. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/javascript_only_project/.github/CODEOWNERS +0 -0
  917. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/javascript_only_project/.keep +0 -0
  918. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/javascript_only_project/config/code_ownership.yml +0 -0
  919. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/javascript_only_project/config/teams/design.yml +0 -0
  920. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/javascript_only_project/config/teams/frontend.yml +0 -0
  921. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/javascript_only_project/frontend/apps/public/index.tsx +0 -0
  922. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/javascript_only_project/frontend/packages/dashboard/package.json +0 -0
  923. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/javascript_only_project/frontend/packages/dashboard/src/index.tsx +0 -0
  924. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/javascript_only_project/frontend/packages/ui-kit/.codeowner +0 -0
  925. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/javascript_only_project/frontend/packages/ui-kit/src/button.tsx +0 -0
  926. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/missing_github_team/.github/CODEOWNERS +0 -0
  927. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/missing_github_team/config/code_ownership.yml +0 -0
  928. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/missing_github_team/config/teams/bad_team.yml +0 -0
  929. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/missing_github_team/config/teams/good.yml +0 -0
  930. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/missing_github_team/gems/pets/dog.rb +0 -0
  931. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/multiple-directory-owners/.github/CODEOWNERS +0 -0
  932. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/multiple-directory-owners/app/consumers/.codeowner +0 -0
  933. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/multiple-directory-owners/app/consumers/deep/nesting/nestdir/deep_file.rb +0 -0
  934. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/multiple-directory-owners/app/consumers/one_owner.rb +0 -0
  935. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/multiple-directory-owners/app/services/exciting/.codeowner +0 -0
  936. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/multiple-directory-owners/app/services/exciting/some_other_file.rb +0 -0
  937. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/multiple-directory-owners/config/teams/bar.yml +0 -0
  938. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project/.ignore +0 -0
  939. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project/config/code_ownership.yml +0 -0
  940. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project/config/teams/payments.yml +0 -0
  941. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project/config/teams/payroll.yml +0 -0
  942. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project/config/teams/ux.yml +0 -0
  943. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project/gems/payroll_calculator/calculator.rb +0 -0
  944. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project/gems/pets/dog.rb +0 -0
  945. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project/javascript/packages/PayrollFlow/index.tsx +0 -0
  946. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project/javascript/packages/PayrollFlow/package.json +0 -0
  947. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project/javascript/packages/items/(special)/.codeowner +0 -0
  948. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project/javascript/packages/items/(special)/pay.ts +0 -0
  949. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project/javascript/packages/items/.codeowner +0 -0
  950. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project/javascript/packages/items/item.ts +0 -0
  951. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project/javascript/packages/list/page-admin.tsx +0 -0
  952. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project/ruby/app/models/bank_account.rb +0 -0
  953. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project/ruby/app/models/payroll.rb +0 -0
  954. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project/ruby/app/payments/foo/.codeowner +0 -0
  955. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project/ruby/app/payments/foo/ownedby_payroll.rb +0 -0
  956. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project/ruby/app/payments/nacha.rb +0 -0
  957. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project/ruby/app/payroll/.codeowner +0 -0
  958. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project/ruby/app/payroll/payroll.rb +0 -0
  959. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project/ruby/app/views/foos/edit.erb +0 -0
  960. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project/ruby/app/views/foos/index.html.erb +0 -0
  961. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project/ruby/app/views/foos/new.html.erb +0 -0
  962. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project/ruby/ignored_files/git_ignored.rb +0 -0
  963. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project/ruby/packages/payroll_flow/package.yml +0 -0
  964. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project/should_be_ignored/an_ignored_file.rb +0 -0
  965. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project_with_overrides/config/code_ownership.yml +0 -0
  966. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project_with_overrides/config/teams/brewers.yml +0 -0
  967. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project_with_overrides/config/teams/cubs.yml +0 -0
  968. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project_with_overrides/config/teams/giants.yml +0 -0
  969. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project_with_overrides/config/teams/rockies.yml +0 -0
  970. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project_with_overrides/frontend/packages/components/datepicker/package.json +0 -0
  971. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project_with_overrides/frontend/packages/components/datepicker/src/picks/dp.tsx +0 -0
  972. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project_with_overrides/frontend/packages/components/list/package.json +0 -0
  973. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project_with_overrides/frontend/packages/components/list/src/item.tsx +0 -0
  974. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project_with_overrides/frontend/packages/components/textfield/package.json +0 -0
  975. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project_with_overrides/frontend/packages/components/textfield/src/field.tsx +0 -0
  976. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project_with_overrides/frontend/packages/components/textfield/src/fields/small.tsx +0 -0
  977. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project_with_overrides/gems/apollo/lib/apollo.rb +0 -0
  978. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project_with_overrides/gems/ivy/lib/ivy.rb +0 -0
  979. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project_with_overrides/gems/lager/lib/lager.rb +0 -0
  980. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project_with_overrides/gems/summit/lib/summit.rb +0 -0
  981. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project_with_overrides/packs/games/app/services/stats.rb +0 -0
  982. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project_with_overrides/packs/games/package.yml +0 -0
  983. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project_with_overrides/packs/locations/app/services/capacity.rb +0 -0
  984. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project_with_overrides/packs/locations/package.yml +0 -0
  985. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project_with_overrides/packs/schedule/app/services/date.rb +0 -0
  986. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project_with_overrides/packs/schedule/package.yml +0 -0
  987. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project_with_overrides/ruby/app/brewers/lib/util.rb +0 -0
  988. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project_with_overrides/ruby/app/brewers/services/play.rb +0 -0
  989. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project_with_overrides/ruby/app/cubs/.codeowner +0 -0
  990. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project_with_overrides/ruby/app/cubs/services/models/.codeowner +0 -0
  991. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project_with_overrides/ruby/app/cubs/services/models/db/price.rb +0 -0
  992. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project_with_overrides/ruby/app/cubs/services/models/entertainment.rb +0 -0
  993. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project_with_overrides/ruby/app/cubs/services/play.rb +0 -0
  994. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project_with_overrides/ruby/app/giants/services/play.rb +0 -0
  995. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project_with_overrides/ruby/app/rockies/services/play.rb +0 -0
  996. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/git_stage_test.rs +0 -0
  997. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/invalid_project_structure_test.rs +0 -0
  998. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/missing_github_team_test.rs +0 -0
  999. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/multiple_directory_owners_test.rs +0 -0
  1000. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/run_config_executable_override_test.rs +0 -0
  1001. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/runner_api.rs +0 -0
  1002. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/untracked_files_test.rs +0 -0
  1003. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/valid_project_with_overrides_test.rs +0 -0
  1004. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/validate_files_test.rs +0 -0
  1005. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tmp/.gitkeep +0 -0
  1006. /data/ext/cargo-vendor/{error-stack-0.5.0 → error-stack-0.8.0}/LICENSE-APACHE.md +0 -0
  1007. /data/ext/cargo-vendor/{error-stack-0.5.0 → error-stack-0.8.0}/LICENSE-MIT.md +0 -0
  1008. /data/ext/cargo-vendor/{error-stack-0.5.0 → error-stack-0.8.0}/LICENSE.md +0 -0
  1009. /data/ext/cargo-vendor/{error-stack-0.5.0 → error-stack-0.8.0}/src/fmt/override.rs +0 -0
  1010. /data/ext/cargo-vendor/{error-stack-0.5.0 → error-stack-0.8.0}/tests/snapshots/doc/hook__location_hook.snap +0 -0
  1011. /data/ext/cargo-vendor/{error-stack-0.5.0 → error-stack-0.8.0}/tests/snapshots/doc/report_display__doc.snap +0 -0
  1012. /data/ext/cargo-vendor/{error-stack-0.5.0 → error-stack-0.8.0}/tests/snapshots/doc/report_display_alt__doc.snap +0 -0
  1013. /data/ext/cargo-vendor/{error-stack-0.5.0 → error-stack-0.8.0}/tests/snapshots/test_debug__full__alt.snap +0 -0
  1014. /data/ext/cargo-vendor/{error-stack-0.5.0 → error-stack-0.8.0}/tests/snapshots/test_debug__full__charset_ascii.snap +0 -0
  1015. /data/ext/cargo-vendor/{error-stack-0.5.0 → error-stack-0.8.0}/tests/snapshots/test_debug__full__color_mode_color.snap +0 -0
  1016. /data/ext/cargo-vendor/{error-stack-0.5.0 → error-stack-0.8.0}/tests/snapshots/test_debug__full__color_mode_emphasis.snap +0 -0
  1017. /data/ext/cargo-vendor/{error-stack-0.5.0 → error-stack-0.8.0}/tests/snapshots/test_debug__full__hook.snap +0 -0
  1018. /data/ext/cargo-vendor/{error-stack-0.5.0 → error-stack-0.8.0}/tests/snapshots/test_debug__full__hook_context.snap +0 -0
  1019. /data/ext/cargo-vendor/{error-stack-0.5.0 → error-stack-0.8.0}/tests/snapshots/test_debug__full__hook_decr.snap +0 -0
  1020. /data/ext/cargo-vendor/{error-stack-0.5.0 → error-stack-0.8.0}/tests/snapshots/test_debug__full__hook_for_context.snap +0 -0
  1021. /data/ext/cargo-vendor/{error-stack-0.5.0 → error-stack-0.8.0}/tests/snapshots/test_debug__full__hook_incr.snap +0 -0
  1022. /data/ext/cargo-vendor/{error-stack-0.5.0 → error-stack-0.8.0}/tests/snapshots/test_debug__full__hook_multiple.snap +0 -0
  1023. /data/ext/cargo-vendor/{error-stack-0.5.0 → error-stack-0.8.0}/tests/snapshots/test_debug__full__hook_provider.snap +0 -0
  1024. /data/ext/cargo-vendor/{error-stack-0.5.0 → error-stack-0.8.0}/tests/snapshots/test_debug__full__multiline.snap +0 -0
  1025. /data/ext/cargo-vendor/{error-stack-0.5.0 → error-stack-0.8.0}/tests/snapshots/test_debug__full__norm.snap +0 -0
  1026. /data/ext/cargo-vendor/{rb-sys-0.9.117 → rb-sys-0.9.130}/LICENSE-APACHE +0 -0
  1027. /data/ext/cargo-vendor/{rb-sys-0.9.117 → rb-sys-0.9.130}/LICENSE-MIT +0 -0
  1028. /data/ext/cargo-vendor/{rb-sys-0.9.117 → rb-sys-0.9.130}/bin/release.sh +0 -0
  1029. /data/ext/cargo-vendor/{rb-sys-0.9.117 → rb-sys-0.9.130}/build/features.rs +0 -0
  1030. /data/ext/cargo-vendor/{rb-sys-0.9.117 → rb-sys-0.9.130}/readme.md +0 -0
  1031. /data/ext/cargo-vendor/{rb-sys-0.9.117 → rb-sys-0.9.130}/src/hidden.rs +0 -0
  1032. /data/ext/cargo-vendor/{rb-sys-0.9.117 → rb-sys-0.9.130}/src/lib.rs +0 -0
  1033. /data/ext/cargo-vendor/{rb-sys-0.9.117 → rb-sys-0.9.130}/src/ruby_abi_version.rs +0 -0
  1034. /data/ext/cargo-vendor/{rb-sys-0.9.117 → rb-sys-0.9.130}/src/special_consts.rs +0 -0
  1035. /data/ext/cargo-vendor/{rb-sys-0.9.117 → rb-sys-0.9.130}/src/symbol.rs +0 -0
  1036. /data/ext/cargo-vendor/{rb-sys-0.9.117 → rb-sys-0.9.130}/src/tracking_allocator.rs +0 -0
  1037. /data/ext/cargo-vendor/{rb-sys-0.9.117 → rb-sys-0.9.130}/src/value_type.rs +0 -0
  1038. /data/ext/cargo-vendor/{rb-sys-build-0.9.117 → rb-sys-build-0.9.130}/LICENSE-APACHE +0 -0
  1039. /data/ext/cargo-vendor/{rb-sys-build-0.9.117 → rb-sys-build-0.9.130}/LICENSE-MIT +0 -0
  1040. /data/ext/cargo-vendor/{rb-sys-build-0.9.117 → rb-sys-build-0.9.130}/src/bindings/sanitizer.rs +0 -0
  1041. /data/ext/cargo-vendor/{rb-sys-build-0.9.117 → rb-sys-build-0.9.130}/src/bindings/wrapper.h +0 -0
  1042. /data/ext/cargo-vendor/{rb-sys-build-0.9.117 → rb-sys-build-0.9.130}/src/lib.rs +0 -0
  1043. /data/ext/cargo-vendor/{rb-sys-build-0.9.117 → rb-sys-build-0.9.130}/src/rb_config/flags.rs +0 -0
  1044. /data/ext/cargo-vendor/{rb-sys-build-0.9.117 → rb-sys-build-0.9.130}/src/rb_config/library.rs +0 -0
  1045. /data/ext/cargo-vendor/{rb-sys-build-0.9.117 → rb-sys-build-0.9.130}/src/rb_config/search_path.rs +0 -0
  1046. /data/ext/cargo-vendor/{rb-sys-build-0.9.117 → rb-sys-build-0.9.130}/src/utils.rs +0 -0
  1047. /data/ext/cargo-vendor/{rb-sys-env-0.2.2 → rb-sys-env-0.2.3}/LICENSE-APACHE +0 -0
  1048. /data/ext/cargo-vendor/{rb-sys-env-0.2.2 → rb-sys-env-0.2.3}/LICENSE-MIT +0 -0
  1049. /data/ext/cargo-vendor/{rb-sys-env-0.2.2 → rb-sys-env-0.2.3}/build.rs +0 -0
  1050. /data/ext/cargo-vendor/{rb-sys-env-0.2.2 → rb-sys-env-0.2.3}/src/defines.rs +0 -0
  1051. /data/ext/cargo-vendor/{rb-sys-env-0.2.2 → rb-sys-env-0.2.3}/src/lib.rs +0 -0
  1052. /data/ext/cargo-vendor/{rb-sys-env-0.2.2 → rb-sys-env-0.2.3}/src/rb_env.rs +0 -0
  1053. /data/ext/cargo-vendor/{rb-sys-env-0.2.2 → rb-sys-env-0.2.3}/src/utils.rs +0 -0
  1054. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/LICENSE-APACHE +0 -0
  1055. /data/ext/cargo-vendor/{rustc-hash-1.1.0 → serde-1.0.229}/LICENSE-MIT +0 -0
  1056. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/crates-io.md +0 -0
  1057. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/core/crate_root.rs +0 -0
  1058. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/core/de/ignored_any.rs +0 -0
  1059. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/core/de/mod.rs +0 -0
  1060. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/core/de/value.rs +0 -0
  1061. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/core/format.rs +0 -0
  1062. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/core/macros.rs +0 -0
  1063. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/core/private/content.rs +0 -0
  1064. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/core/private/doc.rs +0 -0
  1065. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/core/private/mod.rs +0 -0
  1066. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/core/private/seed.rs +0 -0
  1067. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/core/private/size_hint.rs +0 -0
  1068. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/core/private/string.rs +0 -0
  1069. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/core/ser/fmt.rs +0 -0
  1070. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/core/ser/impls.rs +0 -0
  1071. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/core/ser/impossible.rs +0 -0
  1072. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/core/ser/mod.rs +0 -0
  1073. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/core/std_error.rs +0 -0
  1074. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/integer128.rs +0 -0
  1075. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/private/de.rs +0 -0
  1076. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/private/mod.rs +0 -0
  1077. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/private/ser.rs +0 -0
  1078. /data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/LICENSE-APACHE +0 -0
  1079. /data/ext/cargo-vendor/{serde-1.0.228 → serde_core-1.0.229}/LICENSE-MIT +0 -0
  1080. /data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/README.md +0 -0
  1081. /data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/src/crate_root.rs +0 -0
  1082. /data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/src/de/ignored_any.rs +0 -0
  1083. /data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/src/de/mod.rs +0 -0
  1084. /data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/src/de/value.rs +0 -0
  1085. /data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/src/format.rs +0 -0
  1086. /data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/src/macros.rs +0 -0
  1087. /data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/src/private/content.rs +0 -0
  1088. /data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/src/private/doc.rs +0 -0
  1089. /data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/src/private/mod.rs +0 -0
  1090. /data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/src/private/seed.rs +0 -0
  1091. /data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/src/private/size_hint.rs +0 -0
  1092. /data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/src/private/string.rs +0 -0
  1093. /data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/src/ser/fmt.rs +0 -0
  1094. /data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/src/ser/impls.rs +0 -0
  1095. /data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/src/ser/impossible.rs +0 -0
  1096. /data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/src/ser/mod.rs +0 -0
  1097. /data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/src/std_error.rs +0 -0
  1098. /data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/LICENSE-APACHE +0 -0
  1099. /data/ext/cargo-vendor/{serde_core-1.0.228 → serde_derive-1.0.229}/LICENSE-MIT +0 -0
  1100. /data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/crates-io.md +0 -0
  1101. /data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/de/enum_.rs +0 -0
  1102. /data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/de/enum_internally.rs +0 -0
  1103. /data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/de/enum_untagged.rs +0 -0
  1104. /data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/de/identifier.rs +0 -0
  1105. /data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/de/struct_.rs +0 -0
  1106. /data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/de/tuple.rs +0 -0
  1107. /data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/de/unit.rs +0 -0
  1108. /data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/deprecated.rs +0 -0
  1109. /data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/dummy.rs +0 -0
  1110. /data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/fragment.rs +0 -0
  1111. /data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/internals/case.rs +0 -0
  1112. /data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/internals/check.rs +0 -0
  1113. /data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/internals/mod.rs +0 -0
  1114. /data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/internals/name.rs +0 -0
  1115. /data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/internals/respan.rs +0 -0
  1116. /data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/internals/symbol.rs +0 -0
  1117. /data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/this.rs +0 -0
  1118. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/LICENSE +0 -0
  1119. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/src/de/array_deserializer.rs +0 -0
  1120. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/src/de/array_enumerator.rs +0 -0
  1121. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/src/de/enum_deserializer.rs +0 -0
  1122. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/src/de/hash_deserializer.rs +0 -0
  1123. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/src/de/mod.rs +0 -0
  1124. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/src/de/variant_deserializer.rs +0 -0
  1125. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/src/error.rs +0 -0
  1126. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/src/lib.rs +0 -0
  1127. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/src/ser/enums.rs +0 -0
  1128. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/src/ser/map_serializer.rs +0 -0
  1129. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/src/ser/mod.rs +0 -0
  1130. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/src/ser/seq_serializer.rs +0 -0
  1131. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/src/ser/serializer.rs +0 -0
  1132. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/src/ser/struct_serializer.rs +0 -0
  1133. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/src/ser/struct_variant_serializer.rs +0 -0
  1134. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/src/ser/tuple_variant_serializer.rs +0 -0
  1135. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/deserializing_arrays.rs +0 -0
  1136. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/deserializing_booleans.rs +0 -0
  1137. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/deserializing_enums.rs +0 -0
  1138. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/deserializing_floats.rs +0 -0
  1139. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/deserializing_integers.rs +0 -0
  1140. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/deserializing_maps.rs +0 -0
  1141. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/deserializing_options.rs +0 -0
  1142. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/deserializing_results.rs +0 -0
  1143. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/deserializing_strings.rs +0 -0
  1144. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/deserializing_structs.rs +0 -0
  1145. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/deserializing_tuples.rs +0 -0
  1146. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/deserializing_vecs.rs +0 -0
  1147. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/serializing_arrays.rs +0 -0
  1148. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/serializing_booleans.rs +0 -0
  1149. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/serializing_enums.rs +0 -0
  1150. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/serializing_floats.rs +0 -0
  1151. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/serializing_integers.rs +0 -0
  1152. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/serializing_maps.rs +0 -0
  1153. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/serializing_options.rs +0 -0
  1154. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/serializing_results.rs +0 -0
  1155. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/serializing_strings.rs +0 -0
  1156. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/serializing_structs.rs +0 -0
  1157. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/serializing_tuples.rs +0 -0
  1158. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/serializing_vecs.rs +0 -0
  1159. /data/ext/cargo-vendor/{serde_derive-1.0.228 → syn-3.0.9}/LICENSE-MIT +0 -0
@@ -1,1872 +0,0 @@
1
- // MIT License
2
-
3
- // Copyright (c) 2016 Jerome Froelich
4
-
5
- // Permission is hereby granted, free of charge, to any person obtaining a copy
6
- // of this software and associated documentation files (the "Software"), to deal
7
- // in the Software without restriction, including without limitation the rights
8
- // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- // copies of the Software, and to permit persons to whom the Software is
10
- // furnished to do so, subject to the following conditions:
11
-
12
- // The above copyright notice and this permission notice shall be included in all
13
- // copies or substantial portions of the Software.
14
-
15
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- // SOFTWARE.
22
-
23
- //! An implementation of a LRU cache. The cache supports `get`, `get_mut`, `put`,
24
- //! and `pop` operations, all of which are O(1). This crate was heavily influenced
25
- //! by the [LRU Cache implementation in an earlier version of Rust's std::collections crate](https://doc.rust-lang.org/0.12.0/std/collections/lru_cache/struct.LruCache.html).
26
- //!
27
- //! ## Example
28
- //!
29
- //! ```rust
30
- //! extern crate lru;
31
- //!
32
- //! use lru::LruCache;
33
- //!
34
- //! fn main() {
35
- //! let mut cache = LruCache::new(2);
36
- //! cache.put("apple", 3);
37
- //! cache.put("banana", 2);
38
- //!
39
- //! assert_eq!(*cache.get(&"apple").unwrap(), 3);
40
- //! assert_eq!(*cache.get(&"banana").unwrap(), 2);
41
- //! assert!(cache.get(&"pear").is_none());
42
- //!
43
- //! assert_eq!(cache.put("banana", 4), Some(2));
44
- //! assert_eq!(cache.put("pear", 5), None);
45
- //!
46
- //! assert_eq!(*cache.get(&"pear").unwrap(), 5);
47
- //! assert_eq!(*cache.get(&"banana").unwrap(), 4);
48
- //! assert!(cache.get(&"apple").is_none());
49
- //!
50
- //! {
51
- //! let v = cache.get_mut(&"banana").unwrap();
52
- //! *v = 6;
53
- //! }
54
- //!
55
- //! assert_eq!(*cache.get(&"banana").unwrap(), 6);
56
- //! }
57
- //! ```
58
-
59
- #![no_std]
60
- #![cfg_attr(feature = "nightly", feature(negative_impls, auto_traits))]
61
-
62
- #[cfg(feature = "hashbrown")]
63
- extern crate hashbrown;
64
-
65
- #[cfg(test)]
66
- extern crate scoped_threadpool;
67
-
68
- use alloc::borrow::Borrow;
69
- use alloc::boxed::Box;
70
- use core::fmt;
71
- use core::hash::{BuildHasher, Hash, Hasher};
72
- use core::iter::FusedIterator;
73
- use core::marker::PhantomData;
74
- use core::mem;
75
- use core::ptr;
76
- use core::usize;
77
-
78
- #[cfg(any(test, not(feature = "hashbrown")))]
79
- extern crate std;
80
-
81
- #[cfg(feature = "hashbrown")]
82
- use hashbrown::HashMap;
83
- #[cfg(not(feature = "hashbrown"))]
84
- use std::collections::HashMap;
85
-
86
- extern crate alloc;
87
-
88
- // Struct used to hold a reference to a key
89
- #[doc(hidden)]
90
- pub struct KeyRef<K> {
91
- k: *const K,
92
- }
93
-
94
- impl<K: Hash> Hash for KeyRef<K> {
95
- fn hash<H: Hasher>(&self, state: &mut H) {
96
- unsafe { (*self.k).hash(state) }
97
- }
98
- }
99
-
100
- impl<K: PartialEq> PartialEq for KeyRef<K> {
101
- fn eq(&self, other: &KeyRef<K>) -> bool {
102
- unsafe { (*self.k).eq(&*other.k) }
103
- }
104
- }
105
-
106
- impl<K: Eq> Eq for KeyRef<K> {}
107
-
108
- #[cfg(feature = "nightly")]
109
- #[doc(hidden)]
110
- pub auto trait NotKeyRef {}
111
-
112
- #[cfg(feature = "nightly")]
113
- impl<K> !NotKeyRef for KeyRef<K> {}
114
-
115
- #[cfg(feature = "nightly")]
116
- impl<K, D> Borrow<D> for KeyRef<K>
117
- where
118
- K: Borrow<D>,
119
- D: NotKeyRef + ?Sized,
120
- {
121
- fn borrow(&self) -> &D {
122
- unsafe { &*self.k }.borrow()
123
- }
124
- }
125
-
126
- #[cfg(not(feature = "nightly"))]
127
- impl<K> Borrow<K> for KeyRef<K> {
128
- fn borrow(&self) -> &K {
129
- unsafe { &*self.k }
130
- }
131
- }
132
-
133
- #[cfg(not(feature = "nightly"))]
134
- impl Borrow<str> for KeyRef<alloc::string::String> {
135
- fn borrow(&self) -> &str {
136
- unsafe { &*self.k }
137
- }
138
- }
139
-
140
- #[cfg(not(feature = "nightly"))]
141
- impl<T: ?Sized> Borrow<T> for KeyRef<Box<T>> {
142
- fn borrow(&self) -> &T {
143
- unsafe { &*self.k }
144
- }
145
- }
146
-
147
- #[cfg(not(feature = "nightly"))]
148
- impl<T> Borrow<[T]> for KeyRef<alloc::vec::Vec<T>> {
149
- fn borrow(&self) -> &[T] {
150
- unsafe { &*self.k }
151
- }
152
- }
153
-
154
- // Struct used to hold a key value pair. Also contains references to previous and next entries
155
- // so we can maintain the entries in a linked list ordered by their use.
156
- struct LruEntry<K, V> {
157
- key: mem::MaybeUninit<K>,
158
- val: mem::MaybeUninit<V>,
159
- prev: *mut LruEntry<K, V>,
160
- next: *mut LruEntry<K, V>,
161
- }
162
-
163
- impl<K, V> LruEntry<K, V> {
164
- fn new(key: K, val: V) -> Self {
165
- LruEntry {
166
- key: mem::MaybeUninit::new(key),
167
- val: mem::MaybeUninit::new(val),
168
- prev: ptr::null_mut(),
169
- next: ptr::null_mut(),
170
- }
171
- }
172
-
173
- fn new_sigil() -> Self {
174
- LruEntry {
175
- key: mem::MaybeUninit::uninit(),
176
- val: mem::MaybeUninit::uninit(),
177
- prev: ptr::null_mut(),
178
- next: ptr::null_mut(),
179
- }
180
- }
181
- }
182
-
183
- #[cfg(feature = "hashbrown")]
184
- pub type DefaultHasher = hashbrown::hash_map::DefaultHashBuilder;
185
- #[cfg(not(feature = "hashbrown"))]
186
- pub type DefaultHasher = std::collections::hash_map::RandomState;
187
-
188
- /// An LRU Cache
189
- pub struct LruCache<K, V, S = DefaultHasher> {
190
- map: HashMap<KeyRef<K>, Box<LruEntry<K, V>>, S>,
191
- cap: usize,
192
-
193
- // head and tail are sigil nodes to faciliate inserting entries
194
- head: *mut LruEntry<K, V>,
195
- tail: *mut LruEntry<K, V>,
196
- }
197
-
198
- impl<K: Hash + Eq, V> LruCache<K, V> {
199
- /// Creates a new LRU Cache that holds at most `cap` items.
200
- ///
201
- /// # Example
202
- ///
203
- /// ```
204
- /// use lru::LruCache;
205
- /// let mut cache: LruCache<isize, &str> = LruCache::new(10);
206
- /// ```
207
- pub fn new(cap: usize) -> LruCache<K, V> {
208
- LruCache::construct(cap, HashMap::with_capacity(cap))
209
- }
210
-
211
- /// Creates a new LRU Cache that never automatically evicts items.
212
- ///
213
- /// # Example
214
- ///
215
- /// ```
216
- /// use lru::LruCache;
217
- /// let mut cache: LruCache<isize, &str> = LruCache::unbounded();
218
- /// ```
219
- pub fn unbounded() -> LruCache<K, V> {
220
- LruCache::construct(usize::MAX, HashMap::default())
221
- }
222
- }
223
-
224
- impl<K: Hash + Eq, V, S: BuildHasher> LruCache<K, V, S> {
225
- /// Creates a new LRU Cache that holds at most `cap` items and
226
- /// uses the provided hash builder to hash keys.
227
- ///
228
- /// # Example
229
- ///
230
- /// ```
231
- /// use lru::{LruCache, DefaultHasher};
232
- ///
233
- /// let s = DefaultHasher::default();
234
- /// let mut cache: LruCache<isize, &str> = LruCache::with_hasher(10, s);
235
- /// ```
236
- pub fn with_hasher(cap: usize, hash_builder: S) -> LruCache<K, V, S> {
237
- LruCache::construct(cap, HashMap::with_capacity_and_hasher(cap, hash_builder))
238
- }
239
-
240
- /// Creates a new LRU Cache that never automatically evicts items and
241
- /// uses the provided hash builder to hash keys.
242
- ///
243
- /// # Example
244
- ///
245
- /// ```
246
- /// use lru::{LruCache, DefaultHasher};
247
- ///
248
- /// let s = DefaultHasher::default();
249
- /// let mut cache: LruCache<isize, &str> = LruCache::unbounded_with_hasher(s);
250
- /// ```
251
- pub fn unbounded_with_hasher(hash_builder: S) -> LruCache<K, V, S> {
252
- LruCache::construct(usize::MAX, HashMap::with_hasher(hash_builder))
253
- }
254
-
255
- /// Creates a new LRU Cache with the given capacity.
256
- fn construct(cap: usize, map: HashMap<KeyRef<K>, Box<LruEntry<K, V>>, S>) -> LruCache<K, V, S> {
257
- // NB: The compiler warns that cache does not need to be marked as mutable if we
258
- // declare it as such since we only mutate it inside the unsafe block.
259
- let cache = LruCache {
260
- map,
261
- cap,
262
- head: Box::into_raw(Box::new(LruEntry::new_sigil())),
263
- tail: Box::into_raw(Box::new(LruEntry::new_sigil())),
264
- };
265
-
266
- unsafe {
267
- (*cache.head).next = cache.tail;
268
- (*cache.tail).prev = cache.head;
269
- }
270
-
271
- cache
272
- }
273
-
274
- /// Puts a key-value pair into cache. If the key already exists in the cache, then it updates
275
- /// the key's value and returns the old value. Otherwise, `None` is returned.
276
- ///
277
- /// # Example
278
- ///
279
- /// ```
280
- /// use lru::LruCache;
281
- /// let mut cache = LruCache::new(2);
282
- ///
283
- /// assert_eq!(None, cache.put(1, "a"));
284
- /// assert_eq!(None, cache.put(2, "b"));
285
- /// assert_eq!(Some("b"), cache.put(2, "beta"));
286
- ///
287
- /// assert_eq!(cache.get(&1), Some(&"a"));
288
- /// assert_eq!(cache.get(&2), Some(&"beta"));
289
- /// ```
290
- pub fn put(&mut self, k: K, v: V) -> Option<V> {
291
- self.capturing_put(k, v, false).map(|(_, v)| v)
292
- }
293
-
294
- /// Pushes a key-value pair into the cache. If an entry with key `k` already exists in
295
- /// the cache or another cache entry is removed (due to the lru's capacity),
296
- /// then it returns the old entry's key-value pair. Otherwise, returns `None`.
297
- ///
298
- /// # Example
299
- ///
300
- /// ```
301
- /// use lru::LruCache;
302
- /// let mut cache = LruCache::new(2);
303
- ///
304
- /// assert_eq!(None, cache.push(1, "a"));
305
- /// assert_eq!(None, cache.push(2, "b"));
306
- ///
307
- /// // This push call returns (2, "b") because that was previously 2's entry in the cache.
308
- /// assert_eq!(Some((2, "b")), cache.push(2, "beta"));
309
- ///
310
- /// // This push call returns (1, "a") because the cache is at capacity and 1's entry was the lru entry.
311
- /// assert_eq!(Some((1, "a")), cache.push(3, "alpha"));
312
- ///
313
- /// assert_eq!(cache.get(&1), None);
314
- /// assert_eq!(cache.get(&2), Some(&"beta"));
315
- /// assert_eq!(cache.get(&3), Some(&"alpha"));
316
- /// ```
317
- pub fn push(&mut self, k: K, v: V) -> Option<(K, V)> {
318
- self.capturing_put(k, v, true)
319
- }
320
-
321
- // Used internally by `put` and `push` to add a new entry to the lru.
322
- // Takes ownership of and returns entries replaced due to the cache's capacity
323
- // when `capture` is true.
324
- fn capturing_put(&mut self, k: K, mut v: V, capture: bool) -> Option<(K, V)> {
325
- let node_ref = self.map.get_mut(&KeyRef { k: &k });
326
-
327
- match node_ref {
328
- Some(node_ref) => {
329
- let node_ptr: *mut LruEntry<K, V> = &mut **node_ref;
330
-
331
- // if the key is already in the cache just update its value and move it to the
332
- // front of the list
333
- unsafe { mem::swap(&mut v, &mut (*(*node_ptr).val.as_mut_ptr()) as &mut V) }
334
- self.detach(node_ptr);
335
- self.attach(node_ptr);
336
- Some((k, v))
337
- }
338
- None => {
339
- // if the capacity is zero, do nothing
340
- if self.cap() == 0 {
341
- return None;
342
- }
343
-
344
- let (replaced, mut node) = self.replace_or_create_node(k, v);
345
-
346
- let node_ptr: *mut LruEntry<K, V> = &mut *node;
347
- self.attach(node_ptr);
348
-
349
- let keyref = unsafe { (*node_ptr).key.as_ptr() };
350
- self.map.insert(KeyRef { k: keyref }, node);
351
-
352
- replaced.filter(|_| capture)
353
- }
354
- }
355
- }
356
-
357
- // Used internally to swap out a node if the cache is full or to create a new node if space
358
- // is available. Shared between `put`, `push`, and `get_or_insert`.
359
- fn replace_or_create_node(&mut self, k: K, v: V) -> (Option<(K, V)>, Box<LruEntry<K, V>>) {
360
- if self.len() == self.cap() {
361
- // if the cache is full, remove the last entry so we can use it for the new key
362
- let old_key = KeyRef {
363
- k: unsafe { &(*(*(*self.tail).prev).key.as_ptr()) },
364
- };
365
- let mut old_node = self.map.remove(&old_key).unwrap();
366
-
367
- // read out the node's old key and value and then replace it
368
- let replaced = unsafe { (old_node.key.assume_init(), old_node.val.assume_init()) };
369
-
370
- old_node.key = mem::MaybeUninit::new(k);
371
- old_node.val = mem::MaybeUninit::new(v);
372
-
373
- let node_ptr: *mut LruEntry<K, V> = &mut *old_node;
374
- self.detach(node_ptr);
375
-
376
- (Some(replaced), old_node)
377
- } else {
378
- // if the cache is not full allocate a new LruEntry
379
- (None, Box::new(LruEntry::new(k, v)))
380
- }
381
- }
382
-
383
- /// Returns a reference to the value of the key in the cache or `None` if it is not
384
- /// present in the cache. Moves the key to the head of the LRU list if it exists.
385
- ///
386
- /// # Example
387
- ///
388
- /// ```
389
- /// use lru::LruCache;
390
- /// let mut cache = LruCache::new(2);
391
- ///
392
- /// cache.put(1, "a");
393
- /// cache.put(2, "b");
394
- /// cache.put(2, "c");
395
- /// cache.put(3, "d");
396
- ///
397
- /// assert_eq!(cache.get(&1), None);
398
- /// assert_eq!(cache.get(&2), Some(&"c"));
399
- /// assert_eq!(cache.get(&3), Some(&"d"));
400
- /// ```
401
- pub fn get<'a, Q>(&'a mut self, k: &Q) -> Option<&'a V>
402
- where
403
- KeyRef<K>: Borrow<Q>,
404
- Q: Hash + Eq + ?Sized,
405
- {
406
- if let Some(node) = self.map.get_mut(k) {
407
- let node_ptr: *mut LruEntry<K, V> = &mut **node;
408
-
409
- self.detach(node_ptr);
410
- self.attach(node_ptr);
411
-
412
- Some(unsafe { &(*(*node_ptr).val.as_ptr()) as &V })
413
- } else {
414
- None
415
- }
416
- }
417
-
418
- /// Returns a mutable reference to the value of the key in the cache or `None` if it
419
- /// is not present in the cache. Moves the key to the head of the LRU list if it exists.
420
- ///
421
- /// # Example
422
- ///
423
- /// ```
424
- /// use lru::LruCache;
425
- /// let mut cache = LruCache::new(2);
426
- ///
427
- /// cache.put("apple", 8);
428
- /// cache.put("banana", 4);
429
- /// cache.put("banana", 6);
430
- /// cache.put("pear", 2);
431
- ///
432
- /// assert_eq!(cache.get_mut(&"apple"), None);
433
- /// assert_eq!(cache.get_mut(&"banana"), Some(&mut 6));
434
- /// assert_eq!(cache.get_mut(&"pear"), Some(&mut 2));
435
- /// ```
436
- pub fn get_mut<'a, Q>(&'a mut self, k: &Q) -> Option<&'a mut V>
437
- where
438
- KeyRef<K>: Borrow<Q>,
439
- Q: Hash + Eq + ?Sized,
440
- {
441
- if let Some(node) = self.map.get_mut(k) {
442
- let node_ptr: *mut LruEntry<K, V> = &mut **node;
443
-
444
- self.detach(node_ptr);
445
- self.attach(node_ptr);
446
-
447
- Some(unsafe { &mut (*(*node_ptr).val.as_mut_ptr()) as &mut V })
448
- } else {
449
- None
450
- }
451
- }
452
-
453
- /// Returns a reference to the value of the key in the cache if it is
454
- /// present in the cache and moves the key to the head of the LRU list.
455
- /// If the key does not exist the provided `FnOnce` is used to populate
456
- /// the list and a reference is returned.
457
- ///
458
- /// This method will only return `None` when the capacity of the cache is 0 and no entries
459
- /// can be populated.
460
- ///
461
- /// # Example
462
- ///
463
- /// ```
464
- /// use lru::LruCache;
465
- /// let mut cache = LruCache::new(2);
466
- ///
467
- /// cache.put(1, "a");
468
- /// cache.put(2, "b");
469
- /// cache.put(2, "c");
470
- /// cache.put(3, "d");
471
- ///
472
- /// assert_eq!(cache.get_or_insert(2, ||"a"), Some(&"c"));
473
- /// assert_eq!(cache.get_or_insert(3, ||"a"), Some(&"d"));
474
- /// assert_eq!(cache.get_or_insert(1, ||"a"), Some(&"a"));
475
- /// assert_eq!(cache.get_or_insert(1, ||"b"), Some(&"a"));
476
- /// ```
477
- pub fn get_or_insert<'a, F>(&'a mut self, k: K, f: F) -> Option<&'a V>
478
- where
479
- F: FnOnce() -> V,
480
- {
481
- if let Some(node) = self.map.get_mut(&KeyRef { k: &k }) {
482
- let node_ptr: *mut LruEntry<K, V> = &mut **node;
483
-
484
- self.detach(node_ptr);
485
- self.attach(node_ptr);
486
-
487
- Some(unsafe { &(*(*node_ptr).val.as_ptr()) as &V })
488
- } else {
489
- // If the capacity is 0 we do nothing,
490
- // this is the only circumstance that should return None
491
- if self.cap() == 0 {
492
- return None;
493
- }
494
- let v = f();
495
- let (_, mut node) = self.replace_or_create_node(k, v);
496
-
497
- let node_ptr: *mut LruEntry<K, V> = &mut *node;
498
- self.attach(node_ptr);
499
-
500
- let keyref = unsafe { (*node_ptr).key.as_ptr() };
501
- self.map.insert(KeyRef { k: keyref }, node);
502
- Some(unsafe { &(*(*node_ptr).val.as_ptr()) as &V })
503
- }
504
- }
505
-
506
- /// Returns a reference to the value corresponding to the key in the cache or `None` if it is
507
- /// not present in the cache. Unlike `get`, `peek` does not update the LRU list so the key's
508
- /// position will be unchanged.
509
- ///
510
- /// # Example
511
- ///
512
- /// ```
513
- /// use lru::LruCache;
514
- /// let mut cache = LruCache::new(2);
515
- ///
516
- /// cache.put(1, "a");
517
- /// cache.put(2, "b");
518
- ///
519
- /// assert_eq!(cache.peek(&1), Some(&"a"));
520
- /// assert_eq!(cache.peek(&2), Some(&"b"));
521
- /// ```
522
- pub fn peek<'a, Q>(&'a self, k: &Q) -> Option<&'a V>
523
- where
524
- KeyRef<K>: Borrow<Q>,
525
- Q: Hash + Eq + ?Sized,
526
- {
527
- self.map
528
- .get(k)
529
- .map(|node| unsafe { &(*(*node).val.as_ptr()) as &V })
530
- }
531
-
532
- /// Returns a mutable reference to the value corresponding to the key in the cache or `None`
533
- /// if it is not present in the cache. Unlike `get_mut`, `peek_mut` does not update the LRU
534
- /// list so the key's position will be unchanged.
535
- ///
536
- /// # Example
537
- ///
538
- /// ```
539
- /// use lru::LruCache;
540
- /// let mut cache = LruCache::new(2);
541
- ///
542
- /// cache.put(1, "a");
543
- /// cache.put(2, "b");
544
- ///
545
- /// assert_eq!(cache.peek_mut(&1), Some(&mut "a"));
546
- /// assert_eq!(cache.peek_mut(&2), Some(&mut "b"));
547
- /// ```
548
- pub fn peek_mut<'a, Q>(&'a mut self, k: &Q) -> Option<&'a mut V>
549
- where
550
- KeyRef<K>: Borrow<Q>,
551
- Q: Hash + Eq + ?Sized,
552
- {
553
- match self.map.get_mut(k) {
554
- None => None,
555
- Some(node) => Some(unsafe { &mut (*(*node).val.as_mut_ptr()) as &mut V }),
556
- }
557
- }
558
-
559
- /// Returns the value corresponding to the least recently used item or `None` if the
560
- /// cache is empty. Like `peek`, `peek_lru` does not update the LRU list so the item's
561
- /// position will be unchanged.
562
- ///
563
- /// # Example
564
- ///
565
- /// ```
566
- /// use lru::LruCache;
567
- /// let mut cache = LruCache::new(2);
568
- ///
569
- /// cache.put(1, "a");
570
- /// cache.put(2, "b");
571
- ///
572
- /// assert_eq!(cache.peek_lru(), Some((&1, &"a")));
573
- /// ```
574
- pub fn peek_lru<'a>(&'_ self) -> Option<(&'a K, &'a V)> {
575
- if self.is_empty() {
576
- return None;
577
- }
578
-
579
- let (key, val);
580
- unsafe {
581
- let node = (*self.tail).prev;
582
- key = &(*(*node).key.as_ptr()) as &K;
583
- val = &(*(*node).val.as_ptr()) as &V;
584
- }
585
-
586
- Some((key, val))
587
- }
588
-
589
- /// Returns a bool indicating whether the given key is in the cache. Does not update the
590
- /// LRU list.
591
- ///
592
- /// # Example
593
- ///
594
- /// ```
595
- /// use lru::LruCache;
596
- /// let mut cache = LruCache::new(2);
597
- ///
598
- /// cache.put(1, "a");
599
- /// cache.put(2, "b");
600
- /// cache.put(3, "c");
601
- ///
602
- /// assert!(!cache.contains(&1));
603
- /// assert!(cache.contains(&2));
604
- /// assert!(cache.contains(&3));
605
- /// ```
606
- pub fn contains<Q>(&self, k: &Q) -> bool
607
- where
608
- KeyRef<K>: Borrow<Q>,
609
- Q: Hash + Eq + ?Sized,
610
- {
611
- self.map.contains_key(k)
612
- }
613
-
614
- /// Removes and returns the value corresponding to the key from the cache or
615
- /// `None` if it does not exist.
616
- ///
617
- /// # Example
618
- ///
619
- /// ```
620
- /// use lru::LruCache;
621
- /// let mut cache = LruCache::new(2);
622
- ///
623
- /// cache.put(2, "a");
624
- ///
625
- /// assert_eq!(cache.pop(&1), None);
626
- /// assert_eq!(cache.pop(&2), Some("a"));
627
- /// assert_eq!(cache.pop(&2), None);
628
- /// assert_eq!(cache.len(), 0);
629
- /// ```
630
- pub fn pop<Q>(&mut self, k: &Q) -> Option<V>
631
- where
632
- KeyRef<K>: Borrow<Q>,
633
- Q: Hash + Eq + ?Sized,
634
- {
635
- match self.map.remove(k) {
636
- None => None,
637
- Some(mut old_node) => {
638
- unsafe {
639
- ptr::drop_in_place(old_node.key.as_mut_ptr());
640
- }
641
- let node_ptr: *mut LruEntry<K, V> = &mut *old_node;
642
- self.detach(node_ptr);
643
- unsafe { Some(old_node.val.assume_init()) }
644
- }
645
- }
646
- }
647
-
648
- /// Removes and returns the key and the value corresponding to the key from the cache or
649
- /// `None` if it does not exist.
650
- ///
651
- /// # Example
652
- ///
653
- /// ```
654
- /// use lru::LruCache;
655
- /// let mut cache = LruCache::new(2);
656
- ///
657
- /// cache.put(1, "a");
658
- /// cache.put(2, "a");
659
- ///
660
- /// assert_eq!(cache.pop(&1), Some("a"));
661
- /// assert_eq!(cache.pop_entry(&2), Some((2, "a")));
662
- /// assert_eq!(cache.pop(&1), None);
663
- /// assert_eq!(cache.pop_entry(&2), None);
664
- /// assert_eq!(cache.len(), 0);
665
- /// ```
666
- pub fn pop_entry<Q>(&mut self, k: &Q) -> Option<(K, V)>
667
- where
668
- KeyRef<K>: Borrow<Q>,
669
- Q: Hash + Eq + ?Sized,
670
- {
671
- match self.map.remove(k) {
672
- None => None,
673
- Some(mut old_node) => {
674
- let node_ptr: *mut LruEntry<K, V> = &mut *old_node;
675
- self.detach(node_ptr);
676
- unsafe { Some((old_node.key.assume_init(), old_node.val.assume_init())) }
677
- }
678
- }
679
- }
680
-
681
- /// Removes and returns the key and value corresponding to the least recently
682
- /// used item or `None` if the cache is empty.
683
- ///
684
- /// # Example
685
- ///
686
- /// ```
687
- /// use lru::LruCache;
688
- /// let mut cache = LruCache::new(2);
689
- ///
690
- /// cache.put(2, "a");
691
- /// cache.put(3, "b");
692
- /// cache.put(4, "c");
693
- /// cache.get(&3);
694
- ///
695
- /// assert_eq!(cache.pop_lru(), Some((4, "c")));
696
- /// assert_eq!(cache.pop_lru(), Some((3, "b")));
697
- /// assert_eq!(cache.pop_lru(), None);
698
- /// assert_eq!(cache.len(), 0);
699
- /// ```
700
- pub fn pop_lru(&mut self) -> Option<(K, V)> {
701
- let node = self.remove_last()?;
702
- // N.B.: Can't destructure directly because of https://github.com/rust-lang/rust/issues/28536
703
- let node = *node;
704
- let LruEntry { key, val, .. } = node;
705
- unsafe { Some((key.assume_init(), val.assume_init())) }
706
- }
707
-
708
- /// Returns the number of key-value pairs that are currently in the the cache.
709
- ///
710
- /// # Example
711
- ///
712
- /// ```
713
- /// use lru::LruCache;
714
- /// let mut cache = LruCache::new(2);
715
- /// assert_eq!(cache.len(), 0);
716
- ///
717
- /// cache.put(1, "a");
718
- /// assert_eq!(cache.len(), 1);
719
- ///
720
- /// cache.put(2, "b");
721
- /// assert_eq!(cache.len(), 2);
722
- ///
723
- /// cache.put(3, "c");
724
- /// assert_eq!(cache.len(), 2);
725
- /// ```
726
- pub fn len(&self) -> usize {
727
- self.map.len()
728
- }
729
-
730
- /// Returns a bool indicating whether the cache is empty or not.
731
- ///
732
- /// # Example
733
- ///
734
- /// ```
735
- /// use lru::LruCache;
736
- /// let mut cache = LruCache::new(2);
737
- /// assert!(cache.is_empty());
738
- ///
739
- /// cache.put(1, "a");
740
- /// assert!(!cache.is_empty());
741
- /// ```
742
- pub fn is_empty(&self) -> bool {
743
- self.map.len() == 0
744
- }
745
-
746
- /// Returns the maximum number of key-value pairs the cache can hold.
747
- ///
748
- /// # Example
749
- ///
750
- /// ```
751
- /// use lru::LruCache;
752
- /// let mut cache: LruCache<isize, &str> = LruCache::new(2);
753
- /// assert_eq!(cache.cap(), 2);
754
- /// ```
755
- pub fn cap(&self) -> usize {
756
- self.cap
757
- }
758
-
759
- /// Resizes the cache. If the new capacity is smaller than the size of the current
760
- /// cache any entries past the new capacity are discarded.
761
- ///
762
- /// # Example
763
- ///
764
- /// ```
765
- /// use lru::LruCache;
766
- /// let mut cache: LruCache<isize, &str> = LruCache::new(2);
767
- ///
768
- /// cache.put(1, "a");
769
- /// cache.put(2, "b");
770
- /// cache.resize(4);
771
- /// cache.put(3, "c");
772
- /// cache.put(4, "d");
773
- ///
774
- /// assert_eq!(cache.len(), 4);
775
- /// assert_eq!(cache.get(&1), Some(&"a"));
776
- /// assert_eq!(cache.get(&2), Some(&"b"));
777
- /// assert_eq!(cache.get(&3), Some(&"c"));
778
- /// assert_eq!(cache.get(&4), Some(&"d"));
779
- /// ```
780
- pub fn resize(&mut self, cap: usize) {
781
- // return early if capacity doesn't change
782
- if cap == self.cap {
783
- return;
784
- }
785
-
786
- while self.map.len() > cap {
787
- self.pop_lru();
788
- }
789
- self.map.shrink_to_fit();
790
-
791
- self.cap = cap;
792
- }
793
-
794
- /// Clears the contents of the cache.
795
- ///
796
- /// # Example
797
- ///
798
- /// ```
799
- /// use lru::LruCache;
800
- /// let mut cache: LruCache<isize, &str> = LruCache::new(2);
801
- /// assert_eq!(cache.len(), 0);
802
- ///
803
- /// cache.put(1, "a");
804
- /// assert_eq!(cache.len(), 1);
805
- ///
806
- /// cache.put(2, "b");
807
- /// assert_eq!(cache.len(), 2);
808
- ///
809
- /// cache.clear();
810
- /// assert_eq!(cache.len(), 0);
811
- /// ```
812
- pub fn clear(&mut self) {
813
- while self.pop_lru().is_some() {}
814
- }
815
-
816
- /// An iterator visiting all entries in most-recently used order. The iterator element type is
817
- /// `(&K, &V)`.
818
- ///
819
- /// # Examples
820
- ///
821
- /// ```
822
- /// use lru::LruCache;
823
- ///
824
- /// let mut cache = LruCache::new(3);
825
- /// cache.put("a", 1);
826
- /// cache.put("b", 2);
827
- /// cache.put("c", 3);
828
- ///
829
- /// for (key, val) in cache.iter() {
830
- /// println!("key: {} val: {}", key, val);
831
- /// }
832
- /// ```
833
- pub fn iter(&self) -> Iter<'_, K, V> {
834
- Iter {
835
- len: self.len(),
836
- ptr: unsafe { (*self.head).next },
837
- end: unsafe { (*self.tail).prev },
838
- phantom: PhantomData,
839
- }
840
- }
841
-
842
- /// An iterator visiting all entries in most-recently-used order, giving a mutable reference on
843
- /// V. The iterator element type is `(&K, &mut V)`.
844
- ///
845
- /// # Examples
846
- ///
847
- /// ```
848
- /// use lru::LruCache;
849
- ///
850
- /// struct HddBlock {
851
- /// dirty: bool,
852
- /// data: [u8; 512]
853
- /// }
854
- ///
855
- /// let mut cache = LruCache::new(3);
856
- /// cache.put(0, HddBlock { dirty: false, data: [0x00; 512]});
857
- /// cache.put(1, HddBlock { dirty: true, data: [0x55; 512]});
858
- /// cache.put(2, HddBlock { dirty: true, data: [0x77; 512]});
859
- ///
860
- /// // write dirty blocks to disk.
861
- /// for (block_id, block) in cache.iter_mut() {
862
- /// if block.dirty {
863
- /// // write block to disk
864
- /// block.dirty = false
865
- /// }
866
- /// }
867
- /// ```
868
- pub fn iter_mut(&mut self) -> IterMut<'_, K, V> {
869
- IterMut {
870
- len: self.len(),
871
- ptr: unsafe { (*self.head).next },
872
- end: unsafe { (*self.tail).prev },
873
- phantom: PhantomData,
874
- }
875
- }
876
-
877
- fn remove_last(&mut self) -> Option<Box<LruEntry<K, V>>> {
878
- let prev;
879
- unsafe { prev = (*self.tail).prev }
880
- if prev != self.head {
881
- let old_key = KeyRef {
882
- k: unsafe { &(*(*(*self.tail).prev).key.as_ptr()) },
883
- };
884
- let mut old_node = self.map.remove(&old_key).unwrap();
885
- let node_ptr: *mut LruEntry<K, V> = &mut *old_node;
886
- self.detach(node_ptr);
887
- Some(old_node)
888
- } else {
889
- None
890
- }
891
- }
892
-
893
- fn detach(&mut self, node: *mut LruEntry<K, V>) {
894
- unsafe {
895
- (*(*node).prev).next = (*node).next;
896
- (*(*node).next).prev = (*node).prev;
897
- }
898
- }
899
-
900
- fn attach(&mut self, node: *mut LruEntry<K, V>) {
901
- unsafe {
902
- (*node).next = (*self.head).next;
903
- (*node).prev = self.head;
904
- (*self.head).next = node;
905
- (*(*node).next).prev = node;
906
- }
907
- }
908
- }
909
-
910
- impl<K, V, S> Drop for LruCache<K, V, S> {
911
- fn drop(&mut self) {
912
- self.map.values_mut().for_each(|e| unsafe {
913
- ptr::drop_in_place(e.key.as_mut_ptr());
914
- ptr::drop_in_place(e.val.as_mut_ptr());
915
- });
916
- // We rebox the head/tail, and because these are maybe-uninit
917
- // they do not have the absent k/v dropped.
918
-
919
- let _head = unsafe { *Box::from_raw(self.head) };
920
- let _tail = unsafe { *Box::from_raw(self.tail) };
921
-
922
- }
923
- }
924
-
925
- impl<'a, K: Hash + Eq, V, S: BuildHasher> IntoIterator for &'a LruCache<K, V, S> {
926
- type Item = (&'a K, &'a V);
927
- type IntoIter = Iter<'a, K, V>;
928
-
929
- fn into_iter(self) -> Iter<'a, K, V> {
930
- self.iter()
931
- }
932
- }
933
-
934
- impl<'a, K: Hash + Eq, V, S: BuildHasher> IntoIterator for &'a mut LruCache<K, V, S> {
935
- type Item = (&'a K, &'a mut V);
936
- type IntoIter = IterMut<'a, K, V>;
937
-
938
- fn into_iter(self) -> IterMut<'a, K, V> {
939
- self.iter_mut()
940
- }
941
- }
942
-
943
- // The compiler does not automatically derive Send and Sync for LruCache because it contains
944
- // raw pointers. The raw pointers are safely encapsulated by LruCache though so we can
945
- // implement Send and Sync for it below.
946
- unsafe impl<K: Send, V: Send, S: Send> Send for LruCache<K, V, S> {}
947
- unsafe impl<K: Sync, V: Sync, S: Sync> Sync for LruCache<K, V, S> {}
948
-
949
- impl<K: Hash + Eq, V> fmt::Debug for LruCache<K, V> {
950
- fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
951
- f.debug_struct("LruCache")
952
- .field("len", &self.len())
953
- .field("cap", &self.cap())
954
- .finish()
955
- }
956
- }
957
-
958
- /// An iterator over the entries of a `LruCache`.
959
- ///
960
- /// This `struct` is created by the [`iter`] method on [`LruCache`][`LruCache`]. See its
961
- /// documentation for more.
962
- ///
963
- /// [`iter`]: struct.LruCache.html#method.iter
964
- /// [`LruCache`]: struct.LruCache.html
965
- pub struct Iter<'a, K: 'a, V: 'a> {
966
- len: usize,
967
-
968
- ptr: *const LruEntry<K, V>,
969
- end: *const LruEntry<K, V>,
970
-
971
- phantom: PhantomData<&'a K>,
972
- }
973
-
974
- impl<'a, K, V> Iterator for Iter<'a, K, V> {
975
- type Item = (&'a K, &'a V);
976
-
977
- fn next(&mut self) -> Option<(&'a K, &'a V)> {
978
- if self.len == 0 {
979
- return None;
980
- }
981
-
982
- let key = unsafe { &(*(*self.ptr).key.as_ptr()) as &K };
983
- let val = unsafe { &(*(*self.ptr).val.as_ptr()) as &V };
984
-
985
- self.len -= 1;
986
- self.ptr = unsafe { (*self.ptr).next };
987
-
988
- Some((key, val))
989
- }
990
-
991
- fn size_hint(&self) -> (usize, Option<usize>) {
992
- (self.len, Some(self.len))
993
- }
994
-
995
- fn count(self) -> usize {
996
- self.len
997
- }
998
- }
999
-
1000
- impl<'a, K, V> DoubleEndedIterator for Iter<'a, K, V> {
1001
- fn next_back(&mut self) -> Option<(&'a K, &'a V)> {
1002
- if self.len == 0 {
1003
- return None;
1004
- }
1005
-
1006
- let key = unsafe { &(*(*self.end).key.as_ptr()) as &K };
1007
- let val = unsafe { &(*(*self.end).val.as_ptr()) as &V };
1008
-
1009
- self.len -= 1;
1010
- self.end = unsafe { (*self.end).prev };
1011
-
1012
- Some((key, val))
1013
- }
1014
- }
1015
-
1016
- impl<'a, K, V> ExactSizeIterator for Iter<'a, K, V> {}
1017
- impl<'a, K, V> FusedIterator for Iter<'a, K, V> {}
1018
-
1019
- impl<'a, K, V> Clone for Iter<'a, K, V> {
1020
- fn clone(&self) -> Iter<'a, K, V> {
1021
- Iter {
1022
- len: self.len,
1023
- ptr: self.ptr,
1024
- end: self.end,
1025
- phantom: PhantomData,
1026
- }
1027
- }
1028
- }
1029
-
1030
- // The compiler does not automatically derive Send and Sync for Iter because it contains
1031
- // raw pointers.
1032
- unsafe impl<'a, K: Send, V: Send> Send for Iter<'a, K, V> {}
1033
- unsafe impl<'a, K: Sync, V: Sync> Sync for Iter<'a, K, V> {}
1034
-
1035
- /// An iterator over mutables entries of a `LruCache`.
1036
- ///
1037
- /// This `struct` is created by the [`iter_mut`] method on [`LruCache`][`LruCache`]. See its
1038
- /// documentation for more.
1039
- ///
1040
- /// [`iter_mut`]: struct.LruCache.html#method.iter_mut
1041
- /// [`LruCache`]: struct.LruCache.html
1042
- pub struct IterMut<'a, K: 'a, V: 'a> {
1043
- len: usize,
1044
-
1045
- ptr: *mut LruEntry<K, V>,
1046
- end: *mut LruEntry<K, V>,
1047
-
1048
- phantom: PhantomData<&'a K>,
1049
- }
1050
-
1051
- impl<'a, K, V> Iterator for IterMut<'a, K, V> {
1052
- type Item = (&'a K, &'a mut V);
1053
-
1054
- fn next(&mut self) -> Option<(&'a K, &'a mut V)> {
1055
- if self.len == 0 {
1056
- return None;
1057
- }
1058
-
1059
- let key = unsafe { &mut (*(*self.ptr).key.as_mut_ptr()) as &mut K };
1060
- let val = unsafe { &mut (*(*self.ptr).val.as_mut_ptr()) as &mut V };
1061
-
1062
- self.len -= 1;
1063
- self.ptr = unsafe { (*self.ptr).next };
1064
-
1065
- Some((key, val))
1066
- }
1067
-
1068
- fn size_hint(&self) -> (usize, Option<usize>) {
1069
- (self.len, Some(self.len))
1070
- }
1071
-
1072
- fn count(self) -> usize {
1073
- self.len
1074
- }
1075
- }
1076
-
1077
- impl<'a, K, V> DoubleEndedIterator for IterMut<'a, K, V> {
1078
- fn next_back(&mut self) -> Option<(&'a K, &'a mut V)> {
1079
- if self.len == 0 {
1080
- return None;
1081
- }
1082
-
1083
- let key = unsafe { &mut (*(*self.end).key.as_mut_ptr()) as &mut K };
1084
- let val = unsafe { &mut (*(*self.end).val.as_mut_ptr()) as &mut V };
1085
-
1086
- self.len -= 1;
1087
- self.end = unsafe { (*self.end).prev };
1088
-
1089
- Some((key, val))
1090
- }
1091
- }
1092
-
1093
- impl<'a, K, V> ExactSizeIterator for IterMut<'a, K, V> {}
1094
- impl<'a, K, V> FusedIterator for IterMut<'a, K, V> {}
1095
-
1096
- // The compiler does not automatically derive Send and Sync for Iter because it contains
1097
- // raw pointers.
1098
- unsafe impl<'a, K: Send, V: Send> Send for IterMut<'a, K, V> {}
1099
- unsafe impl<'a, K: Sync, V: Sync> Sync for IterMut<'a, K, V> {}
1100
-
1101
- /// An iterator that moves out of a `LruCache`.
1102
- ///
1103
- /// This `struct` is created by the [`into_iter`] method on [`LruCache`][`LruCache`]. See its
1104
- /// documentation for more.
1105
- ///
1106
- /// [`into_iter`]: struct.LruCache.html#method.into_iter
1107
- /// [`LruCache`]: struct.LruCache.html
1108
- pub struct IntoIter<K, V>
1109
- where
1110
- K: Hash + Eq,
1111
- {
1112
- cache: LruCache<K, V>,
1113
- }
1114
-
1115
- impl<K, V> Iterator for IntoIter<K, V>
1116
- where
1117
- K: Hash + Eq,
1118
- {
1119
- type Item = (K, V);
1120
-
1121
- fn next(&mut self) -> Option<(K, V)> {
1122
- self.cache.pop_lru()
1123
- }
1124
-
1125
- fn size_hint(&self) -> (usize, Option<usize>) {
1126
- let len = self.cache.len();
1127
- (len, Some(len))
1128
- }
1129
-
1130
- fn count(self) -> usize {
1131
- self.cache.len()
1132
- }
1133
- }
1134
-
1135
- impl<K, V> ExactSizeIterator for IntoIter<K, V> where K: Hash + Eq {}
1136
- impl<K, V> FusedIterator for IntoIter<K, V> where K: Hash + Eq {}
1137
-
1138
- impl<K: Hash + Eq, V> IntoIterator for LruCache<K, V> {
1139
- type Item = (K, V);
1140
- type IntoIter = IntoIter<K, V>;
1141
-
1142
- fn into_iter(self) -> IntoIter<K, V> {
1143
- IntoIter { cache: self }
1144
- }
1145
- }
1146
-
1147
- #[cfg(test)]
1148
- mod tests {
1149
- use super::LruCache;
1150
- use core::fmt::Debug;
1151
- use scoped_threadpool::Pool;
1152
- use std::sync::atomic::{AtomicUsize, Ordering};
1153
-
1154
- fn assert_opt_eq<V: PartialEq + Debug>(opt: Option<&V>, v: V) {
1155
- assert!(opt.is_some());
1156
- assert_eq!(opt.unwrap(), &v);
1157
- }
1158
-
1159
- fn assert_opt_eq_mut<V: PartialEq + Debug>(opt: Option<&mut V>, v: V) {
1160
- assert!(opt.is_some());
1161
- assert_eq!(opt.unwrap(), &v);
1162
- }
1163
-
1164
- fn assert_opt_eq_tuple<K: PartialEq + Debug, V: PartialEq + Debug>(
1165
- opt: Option<(&K, &V)>,
1166
- kv: (K, V),
1167
- ) {
1168
- assert!(opt.is_some());
1169
- let res = opt.unwrap();
1170
- assert_eq!(res.0, &kv.0);
1171
- assert_eq!(res.1, &kv.1);
1172
- }
1173
-
1174
- fn assert_opt_eq_mut_tuple<K: PartialEq + Debug, V: PartialEq + Debug>(
1175
- opt: Option<(&K, &mut V)>,
1176
- kv: (K, V),
1177
- ) {
1178
- assert!(opt.is_some());
1179
- let res = opt.unwrap();
1180
- assert_eq!(res.0, &kv.0);
1181
- assert_eq!(res.1, &kv.1);
1182
- }
1183
-
1184
- #[test]
1185
- fn test_unbounded() {
1186
- let mut cache = LruCache::unbounded();
1187
- for i in 0..13370 {
1188
- cache.put(i, ());
1189
- }
1190
- assert_eq!(cache.len(), 13370);
1191
- }
1192
-
1193
- #[test]
1194
- #[cfg(feature = "hashbrown")]
1195
- fn test_with_hasher() {
1196
- use hashbrown::hash_map::DefaultHashBuilder;
1197
-
1198
- let s = DefaultHashBuilder::default();
1199
- let mut cache = LruCache::with_hasher(16, s);
1200
-
1201
- for i in 0..13370 {
1202
- cache.put(i, ());
1203
- }
1204
- assert_eq!(cache.len(), 16);
1205
- }
1206
-
1207
- #[test]
1208
- fn test_put_and_get() {
1209
- let mut cache = LruCache::new(2);
1210
- assert!(cache.is_empty());
1211
-
1212
- assert_eq!(cache.put("apple", "red"), None);
1213
- assert_eq!(cache.put("banana", "yellow"), None);
1214
-
1215
- assert_eq!(cache.cap(), 2);
1216
- assert_eq!(cache.len(), 2);
1217
- assert!(!cache.is_empty());
1218
- assert_opt_eq(cache.get(&"apple"), "red");
1219
- assert_opt_eq(cache.get(&"banana"), "yellow");
1220
- }
1221
-
1222
- #[test]
1223
- fn test_put_and_get_or_insert() {
1224
- let mut cache = LruCache::new(2);
1225
- assert!(cache.is_empty());
1226
-
1227
- assert_eq!(cache.put("apple", "red"), None);
1228
- assert_eq!(cache.put("banana", "yellow"), None);
1229
-
1230
- assert_eq!(cache.cap(), 2);
1231
- assert_eq!(cache.len(), 2);
1232
- assert!(!cache.is_empty());
1233
- assert_opt_eq(cache.get_or_insert(&"apple", || "orange"), &"red");
1234
- assert_opt_eq(cache.get_or_insert(&"banana", || "orange"), &"yellow");
1235
- assert_opt_eq(cache.get_or_insert(&"lemon", || "orange"), &"orange");
1236
- assert_opt_eq(cache.get_or_insert(&"lemon", || "red"), &"orange");
1237
- }
1238
-
1239
- #[test]
1240
- fn test_put_and_get_mut() {
1241
- let mut cache = LruCache::new(2);
1242
-
1243
- cache.put("apple", "red");
1244
- cache.put("banana", "yellow");
1245
-
1246
- assert_eq!(cache.cap(), 2);
1247
- assert_eq!(cache.len(), 2);
1248
- assert_opt_eq_mut(cache.get_mut(&"apple"), "red");
1249
- assert_opt_eq_mut(cache.get_mut(&"banana"), "yellow");
1250
- }
1251
-
1252
- #[test]
1253
- fn test_get_mut_and_update() {
1254
- let mut cache = LruCache::new(2);
1255
-
1256
- cache.put("apple", 1);
1257
- cache.put("banana", 3);
1258
-
1259
- {
1260
- let v = cache.get_mut(&"apple").unwrap();
1261
- *v = 4;
1262
- }
1263
-
1264
- assert_eq!(cache.cap(), 2);
1265
- assert_eq!(cache.len(), 2);
1266
- assert_opt_eq_mut(cache.get_mut(&"apple"), 4);
1267
- assert_opt_eq_mut(cache.get_mut(&"banana"), 3);
1268
- }
1269
-
1270
- #[test]
1271
- fn test_put_update() {
1272
- let mut cache = LruCache::new(1);
1273
-
1274
- assert_eq!(cache.put("apple", "red"), None);
1275
- assert_eq!(cache.put("apple", "green"), Some("red"));
1276
-
1277
- assert_eq!(cache.len(), 1);
1278
- assert_opt_eq(cache.get(&"apple"), "green");
1279
- }
1280
-
1281
- #[test]
1282
- fn test_put_removes_oldest() {
1283
- let mut cache = LruCache::new(2);
1284
-
1285
- assert_eq!(cache.put("apple", "red"), None);
1286
- assert_eq!(cache.put("banana", "yellow"), None);
1287
- assert_eq!(cache.put("pear", "green"), None);
1288
-
1289
- assert!(cache.get(&"apple").is_none());
1290
- assert_opt_eq(cache.get(&"banana"), "yellow");
1291
- assert_opt_eq(cache.get(&"pear"), "green");
1292
-
1293
- // Even though we inserted "apple" into the cache earlier it has since been removed from
1294
- // the cache so there is no current value for `put` to return.
1295
- assert_eq!(cache.put("apple", "green"), None);
1296
- assert_eq!(cache.put("tomato", "red"), None);
1297
-
1298
- assert!(cache.get(&"pear").is_none());
1299
- assert_opt_eq(cache.get(&"apple"), "green");
1300
- assert_opt_eq(cache.get(&"tomato"), "red");
1301
- }
1302
-
1303
- #[test]
1304
- fn test_peek() {
1305
- let mut cache = LruCache::new(2);
1306
-
1307
- cache.put("apple", "red");
1308
- cache.put("banana", "yellow");
1309
-
1310
- assert_opt_eq(cache.peek(&"banana"), "yellow");
1311
- assert_opt_eq(cache.peek(&"apple"), "red");
1312
-
1313
- cache.put("pear", "green");
1314
-
1315
- assert!(cache.peek(&"apple").is_none());
1316
- assert_opt_eq(cache.peek(&"banana"), "yellow");
1317
- assert_opt_eq(cache.peek(&"pear"), "green");
1318
- }
1319
-
1320
- #[test]
1321
- fn test_peek_mut() {
1322
- let mut cache = LruCache::new(2);
1323
-
1324
- cache.put("apple", "red");
1325
- cache.put("banana", "yellow");
1326
-
1327
- assert_opt_eq_mut(cache.peek_mut(&"banana"), "yellow");
1328
- assert_opt_eq_mut(cache.peek_mut(&"apple"), "red");
1329
- assert!(cache.peek_mut(&"pear").is_none());
1330
-
1331
- cache.put("pear", "green");
1332
-
1333
- assert!(cache.peek_mut(&"apple").is_none());
1334
- assert_opt_eq_mut(cache.peek_mut(&"banana"), "yellow");
1335
- assert_opt_eq_mut(cache.peek_mut(&"pear"), "green");
1336
-
1337
- {
1338
- let v = cache.peek_mut(&"banana").unwrap();
1339
- *v = "green";
1340
- }
1341
-
1342
- assert_opt_eq_mut(cache.peek_mut(&"banana"), "green");
1343
- }
1344
-
1345
- #[test]
1346
- fn test_peek_lru() {
1347
- let mut cache = LruCache::new(2);
1348
-
1349
- assert!(cache.peek_lru().is_none());
1350
-
1351
- cache.put("apple", "red");
1352
- cache.put("banana", "yellow");
1353
- assert_opt_eq_tuple(cache.peek_lru(), ("apple", "red"));
1354
-
1355
- cache.get(&"apple");
1356
- assert_opt_eq_tuple(cache.peek_lru(), ("banana", "yellow"));
1357
-
1358
- cache.clear();
1359
- assert!(cache.peek_lru().is_none());
1360
- }
1361
-
1362
- #[test]
1363
- fn test_contains() {
1364
- let mut cache = LruCache::new(2);
1365
-
1366
- cache.put("apple", "red");
1367
- cache.put("banana", "yellow");
1368
- cache.put("pear", "green");
1369
-
1370
- assert!(!cache.contains(&"apple"));
1371
- assert!(cache.contains(&"banana"));
1372
- assert!(cache.contains(&"pear"));
1373
- }
1374
-
1375
- #[test]
1376
- fn test_pop() {
1377
- let mut cache = LruCache::new(2);
1378
-
1379
- cache.put("apple", "red");
1380
- cache.put("banana", "yellow");
1381
-
1382
- assert_eq!(cache.len(), 2);
1383
- assert_opt_eq(cache.get(&"apple"), "red");
1384
- assert_opt_eq(cache.get(&"banana"), "yellow");
1385
-
1386
- let popped = cache.pop(&"apple");
1387
- assert!(popped.is_some());
1388
- assert_eq!(popped.unwrap(), "red");
1389
- assert_eq!(cache.len(), 1);
1390
- assert!(cache.get(&"apple").is_none());
1391
- assert_opt_eq(cache.get(&"banana"), "yellow");
1392
- }
1393
-
1394
- #[test]
1395
- fn test_pop_entry() {
1396
- let mut cache = LruCache::new(2);
1397
- cache.put("apple", "red");
1398
- cache.put("banana", "yellow");
1399
-
1400
- assert_eq!(cache.len(), 2);
1401
- assert_opt_eq(cache.get(&"apple"), "red");
1402
- assert_opt_eq(cache.get(&"banana"), "yellow");
1403
-
1404
- let popped = cache.pop_entry(&"apple");
1405
- assert!(popped.is_some());
1406
- assert_eq!(popped.unwrap(), ("apple", "red"));
1407
- assert_eq!(cache.len(), 1);
1408
- assert!(cache.get(&"apple").is_none());
1409
- assert_opt_eq(cache.get(&"banana"), "yellow");
1410
- }
1411
-
1412
- #[test]
1413
- fn test_pop_lru() {
1414
- let mut cache = LruCache::new(200);
1415
-
1416
- for i in 0..75 {
1417
- cache.put(i, "A");
1418
- }
1419
- for i in 0..75 {
1420
- cache.put(i + 100, "B");
1421
- }
1422
- for i in 0..75 {
1423
- cache.put(i + 200, "C");
1424
- }
1425
- assert_eq!(cache.len(), 200);
1426
-
1427
- for i in 0..75 {
1428
- assert_opt_eq(cache.get(&(74 - i + 100)), "B");
1429
- }
1430
- assert_opt_eq(cache.get(&25), "A");
1431
-
1432
- for i in 26..75 {
1433
- assert_eq!(cache.pop_lru(), Some((i, "A")));
1434
- }
1435
- for i in 0..75 {
1436
- assert_eq!(cache.pop_lru(), Some((i + 200, "C")));
1437
- }
1438
- for i in 0..75 {
1439
- assert_eq!(cache.pop_lru(), Some((74 - i + 100, "B")));
1440
- }
1441
- assert_eq!(cache.pop_lru(), Some((25, "A")));
1442
- for _ in 0..50 {
1443
- assert_eq!(cache.pop_lru(), None);
1444
- }
1445
- }
1446
-
1447
- #[test]
1448
- fn test_clear() {
1449
- let mut cache = LruCache::new(2);
1450
-
1451
- cache.put("apple", "red");
1452
- cache.put("banana", "yellow");
1453
-
1454
- assert_eq!(cache.len(), 2);
1455
- assert_opt_eq(cache.get(&"apple"), "red");
1456
- assert_opt_eq(cache.get(&"banana"), "yellow");
1457
-
1458
- cache.clear();
1459
- assert_eq!(cache.len(), 0);
1460
- }
1461
-
1462
- #[test]
1463
- fn test_resize_larger() {
1464
- let mut cache = LruCache::new(2);
1465
-
1466
- cache.put(1, "a");
1467
- cache.put(2, "b");
1468
- cache.resize(4);
1469
- cache.put(3, "c");
1470
- cache.put(4, "d");
1471
-
1472
- assert_eq!(cache.len(), 4);
1473
- assert_eq!(cache.get(&1), Some(&"a"));
1474
- assert_eq!(cache.get(&2), Some(&"b"));
1475
- assert_eq!(cache.get(&3), Some(&"c"));
1476
- assert_eq!(cache.get(&4), Some(&"d"));
1477
- }
1478
-
1479
- #[test]
1480
- fn test_resize_smaller() {
1481
- let mut cache = LruCache::new(4);
1482
-
1483
- cache.put(1, "a");
1484
- cache.put(2, "b");
1485
- cache.put(3, "c");
1486
- cache.put(4, "d");
1487
-
1488
- cache.resize(2);
1489
-
1490
- assert_eq!(cache.len(), 2);
1491
- assert!(cache.get(&1).is_none());
1492
- assert!(cache.get(&2).is_none());
1493
- assert_eq!(cache.get(&3), Some(&"c"));
1494
- assert_eq!(cache.get(&4), Some(&"d"));
1495
- }
1496
-
1497
- #[test]
1498
- fn test_send() {
1499
- use std::thread;
1500
-
1501
- let mut cache = LruCache::new(4);
1502
- cache.put(1, "a");
1503
-
1504
- let handle = thread::spawn(move || {
1505
- assert_eq!(cache.get(&1), Some(&"a"));
1506
- });
1507
-
1508
- assert!(handle.join().is_ok());
1509
- }
1510
-
1511
- #[test]
1512
- fn test_multiple_threads() {
1513
- let mut pool = Pool::new(1);
1514
- let mut cache = LruCache::new(4);
1515
- cache.put(1, "a");
1516
-
1517
- let cache_ref = &cache;
1518
- pool.scoped(|scoped| {
1519
- scoped.execute(move || {
1520
- assert_eq!(cache_ref.peek(&1), Some(&"a"));
1521
- });
1522
- });
1523
-
1524
- assert_eq!((cache_ref).peek(&1), Some(&"a"));
1525
- }
1526
-
1527
- #[test]
1528
- fn test_iter_forwards() {
1529
- let mut cache = LruCache::new(3);
1530
- cache.put("a", 1);
1531
- cache.put("b", 2);
1532
- cache.put("c", 3);
1533
-
1534
- {
1535
- // iter const
1536
- let mut iter = cache.iter();
1537
- assert_eq!(iter.len(), 3);
1538
- assert_opt_eq_tuple(iter.next(), ("c", 3));
1539
-
1540
- assert_eq!(iter.len(), 2);
1541
- assert_opt_eq_tuple(iter.next(), ("b", 2));
1542
-
1543
- assert_eq!(iter.len(), 1);
1544
- assert_opt_eq_tuple(iter.next(), ("a", 1));
1545
-
1546
- assert_eq!(iter.len(), 0);
1547
- assert_eq!(iter.next(), None);
1548
- }
1549
- {
1550
- // iter mut
1551
- let mut iter = cache.iter_mut();
1552
- assert_eq!(iter.len(), 3);
1553
- assert_opt_eq_mut_tuple(iter.next(), ("c", 3));
1554
-
1555
- assert_eq!(iter.len(), 2);
1556
- assert_opt_eq_mut_tuple(iter.next(), ("b", 2));
1557
-
1558
- assert_eq!(iter.len(), 1);
1559
- assert_opt_eq_mut_tuple(iter.next(), ("a", 1));
1560
-
1561
- assert_eq!(iter.len(), 0);
1562
- assert_eq!(iter.next(), None);
1563
- }
1564
- }
1565
-
1566
- #[test]
1567
- fn test_iter_backwards() {
1568
- let mut cache = LruCache::new(3);
1569
- cache.put("a", 1);
1570
- cache.put("b", 2);
1571
- cache.put("c", 3);
1572
-
1573
- {
1574
- // iter const
1575
- let mut iter = cache.iter();
1576
- assert_eq!(iter.len(), 3);
1577
- assert_opt_eq_tuple(iter.next_back(), ("a", 1));
1578
-
1579
- assert_eq!(iter.len(), 2);
1580
- assert_opt_eq_tuple(iter.next_back(), ("b", 2));
1581
-
1582
- assert_eq!(iter.len(), 1);
1583
- assert_opt_eq_tuple(iter.next_back(), ("c", 3));
1584
-
1585
- assert_eq!(iter.len(), 0);
1586
- assert_eq!(iter.next_back(), None);
1587
- }
1588
-
1589
- {
1590
- // iter mut
1591
- let mut iter = cache.iter_mut();
1592
- assert_eq!(iter.len(), 3);
1593
- assert_opt_eq_mut_tuple(iter.next_back(), ("a", 1));
1594
-
1595
- assert_eq!(iter.len(), 2);
1596
- assert_opt_eq_mut_tuple(iter.next_back(), ("b", 2));
1597
-
1598
- assert_eq!(iter.len(), 1);
1599
- assert_opt_eq_mut_tuple(iter.next_back(), ("c", 3));
1600
-
1601
- assert_eq!(iter.len(), 0);
1602
- assert_eq!(iter.next_back(), None);
1603
- }
1604
- }
1605
-
1606
- #[test]
1607
- fn test_iter_forwards_and_backwards() {
1608
- let mut cache = LruCache::new(3);
1609
- cache.put("a", 1);
1610
- cache.put("b", 2);
1611
- cache.put("c", 3);
1612
-
1613
- {
1614
- // iter const
1615
- let mut iter = cache.iter();
1616
- assert_eq!(iter.len(), 3);
1617
- assert_opt_eq_tuple(iter.next(), ("c", 3));
1618
-
1619
- assert_eq!(iter.len(), 2);
1620
- assert_opt_eq_tuple(iter.next_back(), ("a", 1));
1621
-
1622
- assert_eq!(iter.len(), 1);
1623
- assert_opt_eq_tuple(iter.next(), ("b", 2));
1624
-
1625
- assert_eq!(iter.len(), 0);
1626
- assert_eq!(iter.next_back(), None);
1627
- }
1628
- {
1629
- // iter mut
1630
- let mut iter = cache.iter_mut();
1631
- assert_eq!(iter.len(), 3);
1632
- assert_opt_eq_mut_tuple(iter.next(), ("c", 3));
1633
-
1634
- assert_eq!(iter.len(), 2);
1635
- assert_opt_eq_mut_tuple(iter.next_back(), ("a", 1));
1636
-
1637
- assert_eq!(iter.len(), 1);
1638
- assert_opt_eq_mut_tuple(iter.next(), ("b", 2));
1639
-
1640
- assert_eq!(iter.len(), 0);
1641
- assert_eq!(iter.next_back(), None);
1642
- }
1643
- }
1644
-
1645
- #[test]
1646
- fn test_iter_multiple_threads() {
1647
- let mut pool = Pool::new(1);
1648
- let mut cache = LruCache::new(3);
1649
- cache.put("a", 1);
1650
- cache.put("b", 2);
1651
- cache.put("c", 3);
1652
-
1653
- let mut iter = cache.iter();
1654
- assert_eq!(iter.len(), 3);
1655
- assert_opt_eq_tuple(iter.next(), ("c", 3));
1656
-
1657
- {
1658
- let iter_ref = &mut iter;
1659
- pool.scoped(|scoped| {
1660
- scoped.execute(move || {
1661
- assert_eq!(iter_ref.len(), 2);
1662
- assert_opt_eq_tuple(iter_ref.next(), ("b", 2));
1663
- });
1664
- });
1665
- }
1666
-
1667
- assert_eq!(iter.len(), 1);
1668
- assert_opt_eq_tuple(iter.next(), ("a", 1));
1669
-
1670
- assert_eq!(iter.len(), 0);
1671
- assert_eq!(iter.next(), None);
1672
- }
1673
-
1674
- #[test]
1675
- fn test_iter_clone() {
1676
- let mut cache = LruCache::new(3);
1677
- cache.put("a", 1);
1678
- cache.put("b", 2);
1679
-
1680
- let mut iter = cache.iter();
1681
- let mut iter_clone = iter.clone();
1682
-
1683
- assert_eq!(iter.len(), 2);
1684
- assert_opt_eq_tuple(iter.next(), ("b", 2));
1685
- assert_eq!(iter_clone.len(), 2);
1686
- assert_opt_eq_tuple(iter_clone.next(), ("b", 2));
1687
-
1688
- assert_eq!(iter.len(), 1);
1689
- assert_opt_eq_tuple(iter.next(), ("a", 1));
1690
- assert_eq!(iter_clone.len(), 1);
1691
- assert_opt_eq_tuple(iter_clone.next(), ("a", 1));
1692
-
1693
- assert_eq!(iter.len(), 0);
1694
- assert_eq!(iter.next(), None);
1695
- assert_eq!(iter_clone.len(), 0);
1696
- assert_eq!(iter_clone.next(), None);
1697
- }
1698
-
1699
- #[test]
1700
- fn test_into_iter() {
1701
- let mut cache = LruCache::new(3);
1702
- cache.put("a", 1);
1703
- cache.put("b", 2);
1704
- cache.put("c", 3);
1705
-
1706
- let mut iter = cache.into_iter();
1707
- assert_eq!(iter.len(), 3);
1708
- assert_eq!(iter.next(), Some(("a", 1)));
1709
-
1710
- assert_eq!(iter.len(), 2);
1711
- assert_eq!(iter.next(), Some(("b", 2)));
1712
-
1713
- assert_eq!(iter.len(), 1);
1714
- assert_eq!(iter.next(), Some(("c", 3)));
1715
-
1716
- assert_eq!(iter.len(), 0);
1717
- assert_eq!(iter.next(), None);
1718
- }
1719
-
1720
- #[test]
1721
- fn test_that_pop_actually_detaches_node() {
1722
- let mut cache = LruCache::new(5);
1723
-
1724
- cache.put("a", 1);
1725
- cache.put("b", 2);
1726
- cache.put("c", 3);
1727
- cache.put("d", 4);
1728
- cache.put("e", 5);
1729
-
1730
- assert_eq!(cache.pop(&"c"), Some(3));
1731
-
1732
- cache.put("f", 6);
1733
-
1734
- let mut iter = cache.iter();
1735
- assert_opt_eq_tuple(iter.next(), ("f", 6));
1736
- assert_opt_eq_tuple(iter.next(), ("e", 5));
1737
- assert_opt_eq_tuple(iter.next(), ("d", 4));
1738
- assert_opt_eq_tuple(iter.next(), ("b", 2));
1739
- assert_opt_eq_tuple(iter.next(), ("a", 1));
1740
- assert!(iter.next().is_none());
1741
- }
1742
-
1743
- #[test]
1744
- fn test_get_with_borrow() {
1745
- use alloc::string::String;
1746
-
1747
- let mut cache = LruCache::new(2);
1748
-
1749
- let key = String::from("apple");
1750
- cache.put(key, "red");
1751
-
1752
- assert_opt_eq(cache.get("apple"), "red");
1753
- }
1754
-
1755
- #[test]
1756
- fn test_get_mut_with_borrow() {
1757
- use alloc::string::String;
1758
-
1759
- let mut cache = LruCache::new(2);
1760
-
1761
- let key = String::from("apple");
1762
- cache.put(key, "red");
1763
-
1764
- assert_opt_eq_mut(cache.get_mut("apple"), "red");
1765
- }
1766
-
1767
- #[test]
1768
- fn test_no_memory_leaks() {
1769
- static DROP_COUNT: AtomicUsize = AtomicUsize::new(0);
1770
-
1771
- struct DropCounter;
1772
-
1773
- impl Drop for DropCounter {
1774
- fn drop(&mut self) {
1775
- DROP_COUNT.fetch_add(1, Ordering::SeqCst);
1776
- }
1777
- }
1778
-
1779
- let n = 100;
1780
- for _ in 0..n {
1781
- let mut cache = LruCache::new(1);
1782
- for i in 0..n {
1783
- cache.put(i, DropCounter {});
1784
- }
1785
- }
1786
- assert_eq!(DROP_COUNT.load(Ordering::SeqCst), n * n);
1787
- }
1788
-
1789
- #[test]
1790
- fn test_no_memory_leaks_with_clear() {
1791
- static DROP_COUNT: AtomicUsize = AtomicUsize::new(0);
1792
-
1793
- struct DropCounter;
1794
-
1795
- impl Drop for DropCounter {
1796
- fn drop(&mut self) {
1797
- DROP_COUNT.fetch_add(1, Ordering::SeqCst);
1798
- }
1799
- }
1800
-
1801
- let n = 100;
1802
- for _ in 0..n {
1803
- let mut cache = LruCache::new(1);
1804
- for i in 0..n {
1805
- cache.put(i, DropCounter {});
1806
- }
1807
- cache.clear();
1808
- }
1809
- assert_eq!(DROP_COUNT.load(Ordering::SeqCst), n * n);
1810
- }
1811
-
1812
- #[test]
1813
- fn test_no_memory_leaks_with_resize() {
1814
- static DROP_COUNT: AtomicUsize = AtomicUsize::new(0);
1815
-
1816
- struct DropCounter;
1817
-
1818
- impl Drop for DropCounter {
1819
- fn drop(&mut self) {
1820
- DROP_COUNT.fetch_add(1, Ordering::SeqCst);
1821
- }
1822
- }
1823
-
1824
- let n = 100;
1825
- for _ in 0..n {
1826
- let mut cache = LruCache::new(1);
1827
- for i in 0..n {
1828
- cache.put(i, DropCounter {});
1829
- }
1830
- cache.resize(0);
1831
- }
1832
- assert_eq!(DROP_COUNT.load(Ordering::SeqCst), n * n);
1833
- }
1834
-
1835
- #[test]
1836
- fn test_no_memory_leaks_with_pop() {
1837
- static DROP_COUNT: AtomicUsize = AtomicUsize::new(0);
1838
-
1839
- #[derive(Hash, Eq)]
1840
- struct KeyDropCounter(usize);
1841
-
1842
- impl PartialEq for KeyDropCounter {
1843
- fn eq(&self, other: &Self) -> bool {
1844
- self.0.eq(&other.0)
1845
- }
1846
- }
1847
-
1848
- impl Drop for KeyDropCounter {
1849
- fn drop(&mut self) {
1850
- DROP_COUNT.fetch_add(1, Ordering::SeqCst);
1851
- }
1852
- }
1853
-
1854
- let n = 100;
1855
- for _ in 0..n {
1856
- let mut cache = LruCache::new(1);
1857
-
1858
- for i in 0..100 {
1859
- cache.put(KeyDropCounter(i), i);
1860
- cache.pop(&KeyDropCounter(i));
1861
- }
1862
- }
1863
-
1864
- assert_eq!(DROP_COUNT.load(Ordering::SeqCst), n * n * 2);
1865
- }
1866
-
1867
- #[test]
1868
- fn test_zero_cap_no_crash() {
1869
- let mut cache = LruCache::new(0);
1870
- cache.put("reizeiin", "tohka");
1871
- }
1872
- }