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
@@ -0,0 +1,1994 @@
1
+ //! Bindgen's core intermediate representation type.
2
+
3
+ use super::super::codegen::{EnumVariation, CONSTIFIED_ENUM_MODULE_REPR_NAME};
4
+ use super::analysis::{HasVtable, HasVtableResult, Sizedness, SizednessResult};
5
+ use super::annotations::Annotations;
6
+ use super::comp::{CompKind, MethodKind};
7
+ use super::context::{BindgenContext, ItemId, PartialType, TypeId};
8
+ use super::derive::{
9
+ CanDeriveCopy, CanDeriveDebug, CanDeriveDefault, CanDeriveEq,
10
+ CanDeriveHash, CanDeriveOrd, CanDerivePartialEq, CanDerivePartialOrd,
11
+ };
12
+ use super::dot::DotAttributes;
13
+ use super::function::{Function, FunctionKind};
14
+ use super::item_kind::ItemKind;
15
+ use super::layout::Opaque;
16
+ use super::module::Module;
17
+ use super::template::{AsTemplateParam, TemplateParameters};
18
+ use super::traversal::{EdgeKind, Trace, Tracer};
19
+ use super::ty::{Type, TypeKind};
20
+ use crate::callbacks::ItemInfo;
21
+ use crate::clang;
22
+ use crate::parse::{ClangSubItemParser, ParseError, ParseResult};
23
+
24
+ use std::cell::{Cell, OnceCell};
25
+ use std::collections::BTreeSet;
26
+ use std::fmt::Write;
27
+ use std::io;
28
+ use std::iter;
29
+ use std::sync::OnceLock;
30
+
31
+ /// A trait to get the canonical name from an item.
32
+ ///
33
+ /// This is the trait that will eventually isolate all the logic related to name
34
+ /// mangling and that kind of stuff.
35
+ ///
36
+ /// This assumes no nested paths, at some point I'll have to make it a more
37
+ /// complex thing.
38
+ ///
39
+ /// This name is required to be safe for Rust, that is, is not expected to
40
+ /// return any rust keyword from here.
41
+ pub(crate) trait ItemCanonicalName {
42
+ /// Get the canonical name for this item.
43
+ fn canonical_name(&self, ctx: &BindgenContext) -> String;
44
+ }
45
+
46
+ /// The same, but specifies the path that needs to be followed to reach an item.
47
+ ///
48
+ /// To contrast with `canonical_name`, here's an example:
49
+ ///
50
+ /// ```c++
51
+ /// namespace foo {
52
+ /// const BAR = 3;
53
+ /// }
54
+ /// ```
55
+ ///
56
+ /// For bar, the canonical path is `vec!["foo", "BAR"]`, while the canonical
57
+ /// name is just `"BAR"`.
58
+ pub(crate) trait ItemCanonicalPath {
59
+ /// Get the namespace-aware canonical path for this item. This means that if
60
+ /// namespaces are disabled, you'll get a single item, and otherwise you get
61
+ /// the whole path.
62
+ fn namespace_aware_canonical_path(
63
+ &self,
64
+ ctx: &BindgenContext,
65
+ ) -> Vec<String>;
66
+
67
+ /// Get the canonical path for this item.
68
+ fn canonical_path(&self, ctx: &BindgenContext) -> Vec<String>;
69
+ }
70
+
71
+ /// A trait for determining if some IR thing is opaque or not.
72
+ pub(crate) trait IsOpaque {
73
+ /// Extra context the IR thing needs to determine if it is opaque or not.
74
+ type Extra;
75
+
76
+ /// Returns `true` if the thing is opaque, and `false` otherwise.
77
+ ///
78
+ /// May only be called when `ctx` is in the codegen phase.
79
+ fn is_opaque(&self, ctx: &BindgenContext, extra: &Self::Extra) -> bool;
80
+ }
81
+
82
+ /// A trait for determining if some IR thing has type parameter in array or not.
83
+ pub(crate) trait HasTypeParamInArray {
84
+ /// Returns `true` if the thing has Array, and `false` otherwise.
85
+ fn has_type_param_in_array(&self, ctx: &BindgenContext) -> bool;
86
+ }
87
+
88
+ /// A trait for iterating over an item and its parents and up its ancestor chain
89
+ /// up to (but not including) the implicit root module.
90
+ pub(crate) trait ItemAncestors {
91
+ /// Get an iterable over this item's ancestors.
92
+ fn ancestors<'a>(&self, ctx: &'a BindgenContext) -> ItemAncestorsIter<'a>;
93
+ }
94
+
95
+ #[cfg(feature = "__testing_only_extra_assertions")]
96
+ type DebugOnlyItemSet = ItemSet;
97
+
98
+ #[cfg(not(feature = "__testing_only_extra_assertions"))]
99
+ struct DebugOnlyItemSet;
100
+
101
+ #[cfg(not(feature = "__testing_only_extra_assertions"))]
102
+ impl DebugOnlyItemSet {
103
+ fn new() -> Self {
104
+ DebugOnlyItemSet
105
+ }
106
+
107
+ #[allow(clippy::trivially_copy_pass_by_ref)]
108
+ fn contains(&self, _id: &ItemId) -> bool {
109
+ false
110
+ }
111
+
112
+ fn insert(&mut self, _id: ItemId) {}
113
+ }
114
+
115
+ /// An iterator over an item and its ancestors.
116
+ pub(crate) struct ItemAncestorsIter<'a> {
117
+ item: ItemId,
118
+ ctx: &'a BindgenContext,
119
+ seen: DebugOnlyItemSet,
120
+ }
121
+
122
+ impl<'a> ItemAncestorsIter<'a> {
123
+ fn new<Id: Into<ItemId>>(ctx: &'a BindgenContext, id: Id) -> Self {
124
+ ItemAncestorsIter {
125
+ item: id.into(),
126
+ ctx,
127
+ seen: DebugOnlyItemSet::new(),
128
+ }
129
+ }
130
+ }
131
+
132
+ impl Iterator for ItemAncestorsIter<'_> {
133
+ type Item = ItemId;
134
+
135
+ fn next(&mut self) -> Option<Self::Item> {
136
+ let item = self.ctx.resolve_item(self.item);
137
+
138
+ if item.parent_id() == self.item {
139
+ None
140
+ } else {
141
+ self.item = item.parent_id();
142
+
143
+ extra_assert!(!self.seen.contains(&item.id()));
144
+ self.seen.insert(item.id());
145
+
146
+ Some(item.id())
147
+ }
148
+ }
149
+ }
150
+
151
+ impl<T> AsTemplateParam for T
152
+ where
153
+ T: Copy + Into<ItemId>,
154
+ {
155
+ type Extra = ();
156
+
157
+ fn as_template_param(
158
+ &self,
159
+ ctx: &BindgenContext,
160
+ _: &(),
161
+ ) -> Option<TypeId> {
162
+ ctx.resolve_item((*self).into()).as_template_param(ctx, &())
163
+ }
164
+ }
165
+
166
+ impl AsTemplateParam for Item {
167
+ type Extra = ();
168
+
169
+ fn as_template_param(
170
+ &self,
171
+ ctx: &BindgenContext,
172
+ _: &(),
173
+ ) -> Option<TypeId> {
174
+ self.kind.as_template_param(ctx, self)
175
+ }
176
+ }
177
+
178
+ impl AsTemplateParam for ItemKind {
179
+ type Extra = Item;
180
+
181
+ fn as_template_param(
182
+ &self,
183
+ ctx: &BindgenContext,
184
+ item: &Item,
185
+ ) -> Option<TypeId> {
186
+ match *self {
187
+ ItemKind::Type(ref ty) => ty.as_template_param(ctx, item),
188
+ ItemKind::Module(..) |
189
+ ItemKind::Function(..) |
190
+ ItemKind::Var(..) => None,
191
+ }
192
+ }
193
+ }
194
+
195
+ impl<T> ItemCanonicalName for T
196
+ where
197
+ T: Copy + Into<ItemId>,
198
+ {
199
+ fn canonical_name(&self, ctx: &BindgenContext) -> String {
200
+ debug_assert!(
201
+ ctx.in_codegen_phase(),
202
+ "You're not supposed to call this yet"
203
+ );
204
+ ctx.resolve_item(*self).canonical_name(ctx)
205
+ }
206
+ }
207
+
208
+ impl<T> ItemCanonicalPath for T
209
+ where
210
+ T: Copy + Into<ItemId>,
211
+ {
212
+ fn namespace_aware_canonical_path(
213
+ &self,
214
+ ctx: &BindgenContext,
215
+ ) -> Vec<String> {
216
+ debug_assert!(
217
+ ctx.in_codegen_phase(),
218
+ "You're not supposed to call this yet"
219
+ );
220
+ ctx.resolve_item(*self).namespace_aware_canonical_path(ctx)
221
+ }
222
+
223
+ fn canonical_path(&self, ctx: &BindgenContext) -> Vec<String> {
224
+ debug_assert!(
225
+ ctx.in_codegen_phase(),
226
+ "You're not supposed to call this yet"
227
+ );
228
+ ctx.resolve_item(*self).canonical_path(ctx)
229
+ }
230
+ }
231
+
232
+ impl<T> ItemAncestors for T
233
+ where
234
+ T: Copy + Into<ItemId>,
235
+ {
236
+ fn ancestors<'a>(&self, ctx: &'a BindgenContext) -> ItemAncestorsIter<'a> {
237
+ ItemAncestorsIter::new(ctx, *self)
238
+ }
239
+ }
240
+
241
+ impl ItemAncestors for Item {
242
+ fn ancestors<'a>(&self, ctx: &'a BindgenContext) -> ItemAncestorsIter<'a> {
243
+ self.id().ancestors(ctx)
244
+ }
245
+ }
246
+
247
+ impl<Id> Trace for Id
248
+ where
249
+ Id: Copy + Into<ItemId>,
250
+ {
251
+ type Extra = ();
252
+
253
+ fn trace<T>(&self, ctx: &BindgenContext, tracer: &mut T, extra: &())
254
+ where
255
+ T: Tracer,
256
+ {
257
+ ctx.resolve_item(*self).trace(ctx, tracer, extra);
258
+ }
259
+ }
260
+
261
+ impl Trace for Item {
262
+ type Extra = ();
263
+
264
+ fn trace<T>(&self, ctx: &BindgenContext, tracer: &mut T, _extra: &())
265
+ where
266
+ T: Tracer,
267
+ {
268
+ // Even if this item is blocklisted/hidden, we want to trace it. It is
269
+ // traversal iterators' consumers' responsibility to filter items as
270
+ // needed. Generally, this filtering happens in the implementation of
271
+ // `Iterator` for `allowlistedItems`. Fully tracing blocklisted items is
272
+ // necessary for things like the template parameter usage analysis to
273
+ // function correctly.
274
+
275
+ match *self.kind() {
276
+ ItemKind::Type(ref ty) => {
277
+ // There are some types, like resolved type references, where we
278
+ // don't want to stop collecting types even though they may be
279
+ // opaque.
280
+ if ty.should_be_traced_unconditionally() ||
281
+ !self.is_opaque(ctx, &())
282
+ {
283
+ ty.trace(ctx, tracer, self);
284
+ }
285
+ }
286
+ ItemKind::Function(ref fun) => {
287
+ // Just the same way, it has not real meaning for a function to
288
+ // be opaque, so we trace across it.
289
+ tracer.visit(fun.signature().into());
290
+ }
291
+ ItemKind::Var(ref var) => {
292
+ tracer.visit_kind(var.ty().into(), EdgeKind::VarType);
293
+ }
294
+ ItemKind::Module(_) => {
295
+ // Module -> children edges are "weak", and we do not want to
296
+ // trace them. If we did, then allowlisting wouldn't work as
297
+ // expected: everything in every module would end up
298
+ // allowlisted.
299
+ //
300
+ // TODO: make a new edge kind for module -> children edges and
301
+ // filter them during allowlisting traversals.
302
+ }
303
+ }
304
+ }
305
+ }
306
+
307
+ impl CanDeriveDebug for Item {
308
+ fn can_derive_debug(&self, ctx: &BindgenContext) -> bool {
309
+ self.id().can_derive_debug(ctx)
310
+ }
311
+ }
312
+
313
+ impl CanDeriveDefault for Item {
314
+ fn can_derive_default(&self, ctx: &BindgenContext) -> bool {
315
+ self.id().can_derive_default(ctx)
316
+ }
317
+ }
318
+
319
+ impl CanDeriveCopy for Item {
320
+ fn can_derive_copy(&self, ctx: &BindgenContext) -> bool {
321
+ self.id().can_derive_copy(ctx)
322
+ }
323
+ }
324
+
325
+ impl CanDeriveHash for Item {
326
+ fn can_derive_hash(&self, ctx: &BindgenContext) -> bool {
327
+ self.id().can_derive_hash(ctx)
328
+ }
329
+ }
330
+
331
+ impl CanDerivePartialOrd for Item {
332
+ fn can_derive_partialord(&self, ctx: &BindgenContext) -> bool {
333
+ self.id().can_derive_partialord(ctx)
334
+ }
335
+ }
336
+
337
+ impl CanDerivePartialEq for Item {
338
+ fn can_derive_partialeq(&self, ctx: &BindgenContext) -> bool {
339
+ self.id().can_derive_partialeq(ctx)
340
+ }
341
+ }
342
+
343
+ impl CanDeriveEq for Item {
344
+ fn can_derive_eq(&self, ctx: &BindgenContext) -> bool {
345
+ self.id().can_derive_eq(ctx)
346
+ }
347
+ }
348
+
349
+ impl CanDeriveOrd for Item {
350
+ fn can_derive_ord(&self, ctx: &BindgenContext) -> bool {
351
+ self.id().can_derive_ord(ctx)
352
+ }
353
+ }
354
+
355
+ /// An item is the base of the bindgen representation, it can be either a
356
+ /// module, a type, a function, or a variable (see `ItemKind` for more
357
+ /// information).
358
+ ///
359
+ /// Items refer to each other by `ItemId`. Every item has its parent's
360
+ /// ID. Depending on the kind of item this is, it may also refer to other items,
361
+ /// such as a compound type item referring to other types. Collectively, these
362
+ /// references form a graph.
363
+ ///
364
+ /// The entry-point to this graph is the "root module": a meta-item used to hold
365
+ /// all top-level items.
366
+ ///
367
+ /// An item may have a comment, and annotations (see the `annotations` module).
368
+ ///
369
+ /// Note that even though we parse all the types of annotations in comments, not
370
+ /// all of them apply to every item. Those rules are described in the
371
+ /// `annotations` module.
372
+ #[derive(Debug)]
373
+ pub(crate) struct Item {
374
+ /// This item's ID.
375
+ id: ItemId,
376
+
377
+ /// The item's local ID, unique only amongst its siblings. Only used for
378
+ /// anonymous items.
379
+ ///
380
+ /// Lazily initialized in `local_id()`.
381
+ ///
382
+ /// Note that only structs, unions, and enums get a local type ID. In any
383
+ /// case this is an implementation detail.
384
+ local_id: OnceCell<usize>,
385
+
386
+ /// The next local ID to use for a child or template instantiation.
387
+ next_child_local_id: Cell<usize>,
388
+
389
+ /// A cached copy of the canonical name, as returned by `canonical_name`.
390
+ ///
391
+ /// This is a fairly used operation during codegen so this makes bindgen
392
+ /// considerably faster in those cases.
393
+ canonical_name: OnceCell<String>,
394
+
395
+ /// The path to use for allowlisting and other name-based checks, as
396
+ /// returned by `path_for_allowlisting`, lazily constructed.
397
+ path_for_allowlisting: OnceCell<Vec<String>>,
398
+
399
+ /// A doc comment over the item, if any.
400
+ comment: Option<String>,
401
+ /// Annotations extracted from the doc comment, or the default ones
402
+ /// otherwise.
403
+ annotations: Annotations,
404
+ /// An item's parent ID. This will most likely be a class where this item
405
+ /// was declared, or a module, etc.
406
+ ///
407
+ /// All the items have a parent, except the root module, in which case the
408
+ /// parent ID is its own ID.
409
+ parent_id: ItemId,
410
+ /// The item kind.
411
+ kind: ItemKind,
412
+ /// The source location of the item.
413
+ location: Option<clang::SourceLocation>,
414
+ }
415
+
416
+ impl AsRef<ItemId> for Item {
417
+ fn as_ref(&self) -> &ItemId {
418
+ &self.id
419
+ }
420
+ }
421
+
422
+ impl Item {
423
+ /// Construct a new `Item`.
424
+ pub(crate) fn new(
425
+ id: ItemId,
426
+ comment: Option<String>,
427
+ annotations: Option<Annotations>,
428
+ parent_id: ItemId,
429
+ kind: ItemKind,
430
+ location: Option<clang::SourceLocation>,
431
+ ) -> Self {
432
+ debug_assert!(id != parent_id || kind.is_module());
433
+ Item {
434
+ id,
435
+ local_id: OnceCell::new(),
436
+ next_child_local_id: Cell::new(1),
437
+ canonical_name: OnceCell::new(),
438
+ path_for_allowlisting: OnceCell::new(),
439
+ parent_id,
440
+ comment,
441
+ annotations: annotations.unwrap_or_default(),
442
+ kind,
443
+ location,
444
+ }
445
+ }
446
+
447
+ /// Construct a new opaque item type.
448
+ pub(crate) fn new_opaque_type(
449
+ with_id: ItemId,
450
+ ty: &clang::Type,
451
+ ctx: &mut BindgenContext,
452
+ ) -> TypeId {
453
+ let location = ty.declaration().location();
454
+ let ty = Opaque::from_clang_ty(ty, ctx);
455
+ let kind = ItemKind::Type(ty);
456
+ let parent = ctx.root_module().into();
457
+ ctx.add_item(
458
+ Item::new(with_id, None, None, parent, kind, Some(location)),
459
+ None,
460
+ None,
461
+ );
462
+ with_id.as_type_id_unchecked()
463
+ }
464
+
465
+ /// Get this `Item`'s identifier.
466
+ pub(crate) fn id(&self) -> ItemId {
467
+ self.id
468
+ }
469
+
470
+ /// Get this `Item`'s parent's identifier.
471
+ ///
472
+ /// For the root module, the parent's ID is its own ID.
473
+ pub(crate) fn parent_id(&self) -> ItemId {
474
+ self.parent_id
475
+ }
476
+
477
+ /// Set this item's parent ID.
478
+ ///
479
+ /// This is only used so replacements get generated in the proper module.
480
+ pub(crate) fn set_parent_for_replacement<Id: Into<ItemId>>(
481
+ &mut self,
482
+ id: Id,
483
+ ) {
484
+ self.parent_id = id.into();
485
+ }
486
+
487
+ /// Returns the depth this item is indented to.
488
+ ///
489
+ /// FIXME(emilio): This may need fixes for the enums within modules stuff.
490
+ pub(crate) fn codegen_depth(&self, ctx: &BindgenContext) -> usize {
491
+ if !ctx.options().enable_cxx_namespaces {
492
+ return 0;
493
+ }
494
+
495
+ self.ancestors(ctx)
496
+ .filter(|id| {
497
+ ctx.resolve_item(*id).as_module().is_some_and(|module| {
498
+ !module.is_inline() ||
499
+ ctx.options().conservative_inline_namespaces
500
+ })
501
+ })
502
+ .count() +
503
+ 1
504
+ }
505
+
506
+ /// Get this `Item`'s comment, if it has any, already preprocessed and with
507
+ /// the right indentation.
508
+ pub(crate) fn comment(&self, ctx: &BindgenContext) -> Option<String> {
509
+ if !ctx.options().generate_comments {
510
+ return None;
511
+ }
512
+
513
+ self.comment
514
+ .as_ref()
515
+ .map(|comment| ctx.options().process_comment(comment))
516
+ }
517
+
518
+ /// What kind of item is this?
519
+ pub(crate) fn kind(&self) -> &ItemKind {
520
+ &self.kind
521
+ }
522
+
523
+ /// Get a mutable reference to this item's kind.
524
+ pub(crate) fn kind_mut(&mut self) -> &mut ItemKind {
525
+ &mut self.kind
526
+ }
527
+
528
+ /// Where in the source is this item located?
529
+ pub(crate) fn location(&self) -> Option<&clang::SourceLocation> {
530
+ self.location.as_ref()
531
+ }
532
+
533
+ /// Get an identifier that differentiates this item from its siblings.
534
+ ///
535
+ /// This should stay relatively stable in the face of code motion outside or
536
+ /// below this item's lexical scope, meaning that this can be useful for
537
+ /// generating relatively stable identifiers within a scope.
538
+ pub(crate) fn local_id(&self, ctx: &BindgenContext) -> usize {
539
+ *self.local_id.get_or_init(|| {
540
+ let parent = ctx.resolve_item(self.parent_id);
541
+ parent.next_child_local_id()
542
+ })
543
+ }
544
+
545
+ /// Get an identifier that differentiates a child of this item of other
546
+ /// related items.
547
+ ///
548
+ /// This is currently used for anonymous items, and template instantiation
549
+ /// tests, in both cases in order to reduce noise when system headers are at
550
+ /// place.
551
+ pub(crate) fn next_child_local_id(&self) -> usize {
552
+ let local_id = self.next_child_local_id.get();
553
+ self.next_child_local_id.set(local_id + 1);
554
+ local_id
555
+ }
556
+
557
+ /// Returns whether this item is a top-level item, from the point of view of
558
+ /// bindgen.
559
+ ///
560
+ /// This point of view changes depending on whether namespaces are enabled
561
+ /// or not. That way, in the following example:
562
+ ///
563
+ /// ```c++
564
+ /// namespace foo {
565
+ /// static int var;
566
+ /// }
567
+ /// ```
568
+ ///
569
+ /// `var` would be a toplevel item if namespaces are disabled, but won't if
570
+ /// they aren't.
571
+ ///
572
+ /// This function is used to determine when the codegen phase should call
573
+ /// `codegen` on an item, since any item that is not top-level will be
574
+ /// generated by its parent.
575
+ pub(crate) fn is_toplevel(&self, ctx: &BindgenContext) -> bool {
576
+ // FIXME: Workaround for some types falling behind when parsing weird
577
+ // stl classes, for example.
578
+ if ctx.options().enable_cxx_namespaces &&
579
+ self.kind().is_module() &&
580
+ self.id() != ctx.root_module()
581
+ {
582
+ return false;
583
+ }
584
+
585
+ let mut parent = self.parent_id;
586
+ loop {
587
+ let Some(parent_item) = ctx.resolve_item_fallible(parent) else {
588
+ return false;
589
+ };
590
+
591
+ if parent_item.id() == ctx.root_module() {
592
+ return true;
593
+ } else if ctx.options().enable_cxx_namespaces ||
594
+ !parent_item.kind().is_module()
595
+ {
596
+ return false;
597
+ }
598
+
599
+ parent = parent_item.parent_id();
600
+ }
601
+ }
602
+
603
+ /// Get a reference to this item's underlying `Type`. Panic if this is some
604
+ /// other kind of item.
605
+ pub(crate) fn expect_type(&self) -> &Type {
606
+ self.kind().expect_type()
607
+ }
608
+
609
+ /// Get a reference to this item's underlying `Type`, or `None` if this is
610
+ /// some other kind of item.
611
+ pub(crate) fn as_type(&self) -> Option<&Type> {
612
+ self.kind().as_type()
613
+ }
614
+
615
+ /// Get a reference to this item's underlying `Function`. Panic if this is
616
+ /// some other kind of item.
617
+ pub(crate) fn expect_function(&self) -> &Function {
618
+ self.kind().expect_function()
619
+ }
620
+
621
+ /// Is this item a module?
622
+ pub(crate) fn is_module(&self) -> bool {
623
+ matches!(self.kind, ItemKind::Module(..))
624
+ }
625
+
626
+ /// Get this item's annotations.
627
+ pub(crate) fn annotations(&self) -> &Annotations {
628
+ &self.annotations
629
+ }
630
+
631
+ /// Whether this item should be blocklisted.
632
+ ///
633
+ /// This may be due to either annotations or to other kind of configuration.
634
+ pub(crate) fn is_blocklisted(&self, ctx: &BindgenContext) -> bool {
635
+ debug_assert!(
636
+ ctx.in_codegen_phase(),
637
+ "You're not supposed to call this yet"
638
+ );
639
+ if self.annotations.hide() {
640
+ return true;
641
+ }
642
+
643
+ if !ctx.options().blocklisted_files.is_empty() {
644
+ if let Some(location) = &self.location {
645
+ let (file, _, _, _) = location.location();
646
+ if let Some(filename) = file.name() {
647
+ if ctx.options().blocklisted_files.matches(filename) {
648
+ return true;
649
+ }
650
+ }
651
+ }
652
+ }
653
+
654
+ let path = self.path_for_allowlisting(ctx);
655
+ let name = path[1..].join("::");
656
+ ctx.options().blocklisted_items.matches(&name) ||
657
+ match self.kind {
658
+ ItemKind::Type(..) => {
659
+ ctx.options().blocklisted_types.matches(&name) ||
660
+ ctx.is_replaced_type(path, self.id)
661
+ }
662
+ ItemKind::Function(..) => {
663
+ ctx.options().blocklisted_functions.matches(&name)
664
+ }
665
+ ItemKind::Var(..) => {
666
+ ctx.options().blocklisted_vars.matches(&name)
667
+ }
668
+ // TODO: Add namespace blocklisting?
669
+ ItemKind::Module(..) => false,
670
+ }
671
+ }
672
+
673
+ /// Take out item `NameOptions`
674
+ pub(crate) fn name<'a>(
675
+ &'a self,
676
+ ctx: &'a BindgenContext,
677
+ ) -> NameOptions<'a> {
678
+ NameOptions::new(self, ctx)
679
+ }
680
+
681
+ /// Get the target item ID for name generation.
682
+ fn name_target(&self, ctx: &BindgenContext) -> ItemId {
683
+ let mut targets_seen = DebugOnlyItemSet::new();
684
+ let mut item = self;
685
+
686
+ loop {
687
+ extra_assert!(!targets_seen.contains(&item.id()));
688
+ targets_seen.insert(item.id());
689
+
690
+ if self.annotations().use_instead_of().is_some() {
691
+ return self.id();
692
+ }
693
+
694
+ match *item.kind() {
695
+ ItemKind::Type(ref ty) => match *ty.kind() {
696
+ TypeKind::ResolvedTypeRef(inner) => {
697
+ item = ctx.resolve_item(inner);
698
+ }
699
+ TypeKind::TemplateInstantiation(ref inst) => {
700
+ item = ctx.resolve_item(inst.template_definition());
701
+ }
702
+ _ => return item.id(),
703
+ },
704
+ _ => return item.id(),
705
+ }
706
+ }
707
+ }
708
+
709
+ /// Create a fully disambiguated name for an item, including template
710
+ /// parameters if it is a type
711
+ pub(crate) fn full_disambiguated_name(
712
+ &self,
713
+ ctx: &BindgenContext,
714
+ ) -> String {
715
+ let mut s = String::new();
716
+ let level = 0;
717
+ self.push_disambiguated_name(ctx, &mut s, level);
718
+ s
719
+ }
720
+
721
+ /// Helper function for `full_disambiguated_name`
722
+ fn push_disambiguated_name(
723
+ &self,
724
+ ctx: &BindgenContext,
725
+ to: &mut String,
726
+ level: u8,
727
+ ) {
728
+ to.push_str(&self.canonical_name(ctx));
729
+ if let ItemKind::Type(ref ty) = *self.kind() {
730
+ if let TypeKind::TemplateInstantiation(ref inst) = *ty.kind() {
731
+ let _ = write!(to, "_open{level}_");
732
+ for arg in inst.template_arguments() {
733
+ arg.into_resolver()
734
+ .through_type_refs()
735
+ .resolve(ctx)
736
+ .push_disambiguated_name(ctx, to, level + 1);
737
+ to.push('_');
738
+ }
739
+ let _ = write!(to, "close{level}");
740
+ }
741
+ }
742
+ }
743
+
744
+ /// Get this function item's name, or `None` if this item is not a function.
745
+ fn func_name(&self) -> Option<&str> {
746
+ match *self.kind() {
747
+ ItemKind::Function(ref func) => Some(func.name()),
748
+ _ => None,
749
+ }
750
+ }
751
+
752
+ /// Get the overload index for this method. If this is not a method, return
753
+ /// `None`.
754
+ fn overload_index(&self, ctx: &BindgenContext) -> Option<usize> {
755
+ self.func_name().and_then(|func_name| {
756
+ let parent = ctx.resolve_item(self.parent_id());
757
+ if let ItemKind::Type(ref ty) = *parent.kind() {
758
+ if let TypeKind::Comp(ref ci) = *ty.kind() {
759
+ // All the constructors have the same name, so no need to
760
+ // resolve and check.
761
+ return ci
762
+ .constructors()
763
+ .iter()
764
+ .position(|c| *c == self.id())
765
+ .or_else(|| {
766
+ ci.methods()
767
+ .iter()
768
+ .filter(|m| {
769
+ let item = ctx.resolve_item(m.signature());
770
+ let func = item.expect_function();
771
+ func.name() == func_name
772
+ })
773
+ .position(|m| m.signature() == self.id())
774
+ });
775
+ }
776
+ }
777
+
778
+ None
779
+ })
780
+ }
781
+
782
+ /// Get this item's base name (aka non-namespaced name).
783
+ fn base_name(&self, ctx: &BindgenContext) -> String {
784
+ if let Some(path) = self.annotations().use_instead_of() {
785
+ return path.last().unwrap().clone();
786
+ }
787
+
788
+ match *self.kind() {
789
+ ItemKind::Var(ref var) => var.name().to_owned(),
790
+ ItemKind::Module(ref module) => module.name().map_or_else(
791
+ || format!("_bindgen_mod_{}", self.exposed_id(ctx)),
792
+ ToOwned::to_owned,
793
+ ),
794
+ ItemKind::Type(ref ty) => ty.sanitized_name(ctx).map_or_else(
795
+ || format!("_bindgen_ty_{}", self.exposed_id(ctx)),
796
+ Into::into,
797
+ ),
798
+ ItemKind::Function(ref fun) => {
799
+ let mut name = fun.name().to_owned();
800
+
801
+ if let Some(idx) = self.overload_index(ctx) {
802
+ if idx > 0 {
803
+ write!(&mut name, "{idx}").unwrap();
804
+ }
805
+ }
806
+
807
+ name
808
+ }
809
+ }
810
+ }
811
+
812
+ fn is_anon(&self) -> bool {
813
+ match self.kind() {
814
+ ItemKind::Module(module) => module.name().is_none(),
815
+ ItemKind::Type(ty) => ty.name().is_none(),
816
+ ItemKind::Function(_) => false,
817
+ ItemKind::Var(_) => false,
818
+ }
819
+ }
820
+
821
+ /// Get the canonical name without taking into account the replaces
822
+ /// annotation.
823
+ ///
824
+ /// This is the base logic used to implement hiding and replacing via
825
+ /// annotations, and also to implement proper name mangling.
826
+ ///
827
+ /// The idea is that each generated type in the same "level" (read: module
828
+ /// or namespace) has a unique canonical name.
829
+ ///
830
+ /// This name should be derived from the immutable state contained in the
831
+ /// type and the parent chain, since it should be consistent.
832
+ ///
833
+ /// If `BindgenOptions::disable_nested_struct_naming` is true then returned
834
+ /// name is the inner most non-anonymous name plus all the anonymous base names
835
+ /// that follows.
836
+ pub(crate) fn real_canonical_name(
837
+ &self,
838
+ ctx: &BindgenContext,
839
+ opt: &NameOptions,
840
+ ) -> String {
841
+ let target = ctx.resolve_item(self.name_target(ctx));
842
+
843
+ // Short-circuit if the target has an override, and just use that.
844
+ if let Some(path) = target.annotations.use_instead_of() {
845
+ if ctx.options().enable_cxx_namespaces {
846
+ return path.last().unwrap().clone();
847
+ }
848
+ return path.join("_");
849
+ }
850
+
851
+ let base_name = target.base_name(ctx);
852
+
853
+ // Named template type arguments are never namespaced, and never
854
+ // mangled.
855
+ if target.is_template_param(ctx, &()) {
856
+ return base_name;
857
+ }
858
+
859
+ // Ancestors' ID iter
860
+ let mut ids_iter = target
861
+ .parent_id()
862
+ .ancestors(ctx)
863
+ .filter(|id| *id != ctx.root_module())
864
+ .take_while(|id| {
865
+ // Stop iterating ancestors once we reach a non-inline namespace
866
+ // when opt.within_namespaces is set.
867
+ !opt.within_namespaces || !ctx.resolve_item(*id).is_module()
868
+ })
869
+ .filter(|id| {
870
+ if !ctx.options().conservative_inline_namespaces {
871
+ if let ItemKind::Module(ref module) =
872
+ *ctx.resolve_item(*id).kind()
873
+ {
874
+ return !module.is_inline();
875
+ }
876
+ }
877
+
878
+ true
879
+ });
880
+
881
+ let ids: Vec<_> = if ctx.options().disable_nested_struct_naming {
882
+ let mut ids = Vec::new();
883
+
884
+ // If target is anonymous we need find its first named ancestor.
885
+ if target.is_anon() {
886
+ for id in ids_iter.by_ref() {
887
+ ids.push(id);
888
+
889
+ if !ctx.resolve_item(id).is_anon() {
890
+ break;
891
+ }
892
+ }
893
+ }
894
+
895
+ ids
896
+ } else {
897
+ ids_iter.collect()
898
+ };
899
+
900
+ // Concatenate this item's ancestors' names together.
901
+ let mut names: Vec<_> = ids
902
+ .into_iter()
903
+ .map(|id| {
904
+ let item = ctx.resolve_item(id);
905
+ let target = ctx.resolve_item(item.name_target(ctx));
906
+ target.base_name(ctx)
907
+ })
908
+ .filter(|name| !name.is_empty())
909
+ .collect();
910
+
911
+ names.reverse();
912
+
913
+ if !base_name.is_empty() {
914
+ names.push(base_name);
915
+ }
916
+
917
+ if ctx.options().c_naming {
918
+ if let Some(prefix) = self.c_naming_prefix() {
919
+ names.insert(0, prefix.to_string());
920
+ }
921
+ }
922
+
923
+ let name = names.join("_");
924
+
925
+ let name = if opt.user_mangled == UserMangled::Yes {
926
+ let item_info = ItemInfo {
927
+ name: &name,
928
+ kind: match self.kind() {
929
+ ItemKind::Module(..) => crate::callbacks::ItemKind::Module,
930
+ ItemKind::Type(..) => crate::callbacks::ItemKind::Type,
931
+ ItemKind::Function(..) => {
932
+ crate::callbacks::ItemKind::Function
933
+ }
934
+ ItemKind::Var(..) => crate::callbacks::ItemKind::Var,
935
+ },
936
+ };
937
+ ctx.options()
938
+ .last_callback(|callbacks| callbacks.item_name(item_info))
939
+ .unwrap_or(name)
940
+ } else {
941
+ name
942
+ };
943
+
944
+ ctx.rust_mangle(&name).into_owned()
945
+ }
946
+
947
+ /// The exposed ID that represents an unique ID among the siblings of a
948
+ /// given item.
949
+ pub(crate) fn exposed_id(&self, ctx: &BindgenContext) -> String {
950
+ // Only use local ids for enums, classes, structs and union types. All
951
+ // other items use their global ID.
952
+ let ty_kind = self.kind().as_type().map(|t| t.kind());
953
+ if let Some(
954
+ TypeKind::Comp(..) |
955
+ TypeKind::TemplateInstantiation(..) |
956
+ TypeKind::Enum(..),
957
+ ) = ty_kind
958
+ {
959
+ return self.local_id(ctx).to_string();
960
+ }
961
+
962
+ // Note that this `id_` prefix prevents (really unlikely) collisions
963
+ // between the global ID and the local ID of an item with the same
964
+ // parent.
965
+ format!("id_{}", self.id().as_usize())
966
+ }
967
+
968
+ /// Get a reference to this item's `Module`, or `None` if this is not a
969
+ /// `Module` item.
970
+ pub(crate) fn as_module(&self) -> Option<&Module> {
971
+ match self.kind {
972
+ ItemKind::Module(ref module) => Some(module),
973
+ _ => None,
974
+ }
975
+ }
976
+
977
+ /// Get a mutable reference to this item's `Module`, or `None` if this is
978
+ /// not a `Module` item.
979
+ pub(crate) fn as_module_mut(&mut self) -> Option<&mut Module> {
980
+ match self.kind {
981
+ ItemKind::Module(ref mut module) => Some(module),
982
+ _ => None,
983
+ }
984
+ }
985
+
986
+ /// Returns whether the item is a constified module enum
987
+ fn is_constified_enum_module(&self, ctx: &BindgenContext) -> bool {
988
+ // Do not jump through aliases, except for aliases that point to a type
989
+ // with the same name, since we dont generate coe for them.
990
+ let item = self.id.into_resolver().through_type_refs().resolve(ctx);
991
+ let ItemKind::Type(ref type_) = *item.kind() else {
992
+ return false;
993
+ };
994
+
995
+ match *type_.kind() {
996
+ TypeKind::Enum(ref enum_) => {
997
+ enum_.computed_enum_variation(ctx, self) ==
998
+ EnumVariation::ModuleConsts
999
+ }
1000
+ TypeKind::Alias(inner_id) => {
1001
+ // TODO(emilio): Make this "hop through type aliases that aren't
1002
+ // really generated" an option in `ItemResolver`?
1003
+ let inner_item = ctx.resolve_item(inner_id);
1004
+ let name = item.canonical_name(ctx);
1005
+
1006
+ if inner_item.canonical_name(ctx) == name {
1007
+ inner_item.is_constified_enum_module(ctx)
1008
+ } else {
1009
+ false
1010
+ }
1011
+ }
1012
+ _ => false,
1013
+ }
1014
+ }
1015
+
1016
+ /// Is this item of a kind that is enabled for code generation?
1017
+ pub(crate) fn is_enabled_for_codegen(&self, ctx: &BindgenContext) -> bool {
1018
+ let cc = &ctx.options().codegen_config;
1019
+ match *self.kind() {
1020
+ ItemKind::Module(..) => true,
1021
+ ItemKind::Var(_) => cc.vars(),
1022
+ ItemKind::Type(_) => cc.types(),
1023
+ ItemKind::Function(ref f) => match f.kind() {
1024
+ FunctionKind::Function => cc.functions(),
1025
+ FunctionKind::Method(MethodKind::Constructor) => {
1026
+ cc.constructors()
1027
+ }
1028
+ FunctionKind::Method(
1029
+ MethodKind::Destructor |
1030
+ MethodKind::VirtualDestructor { .. },
1031
+ ) => cc.destructors(),
1032
+ FunctionKind::Method(
1033
+ MethodKind::Static |
1034
+ MethodKind::Normal |
1035
+ MethodKind::Virtual { .. },
1036
+ ) => cc.methods(),
1037
+ },
1038
+ }
1039
+ }
1040
+
1041
+ /// Returns the path we should use for allowlisting / blocklisting, which
1042
+ /// doesn't include user-mangling.
1043
+ pub(crate) fn path_for_allowlisting(
1044
+ &self,
1045
+ ctx: &BindgenContext,
1046
+ ) -> &Vec<String> {
1047
+ self.path_for_allowlisting
1048
+ .get_or_init(|| self.compute_path(ctx, UserMangled::No))
1049
+ }
1050
+
1051
+ fn compute_path(
1052
+ &self,
1053
+ ctx: &BindgenContext,
1054
+ mangled: UserMangled,
1055
+ ) -> Vec<String> {
1056
+ if let Some(path) = self.annotations().use_instead_of() {
1057
+ let mut ret =
1058
+ vec![ctx.resolve_item(ctx.root_module()).name(ctx).get()];
1059
+ ret.extend_from_slice(path);
1060
+ return ret;
1061
+ }
1062
+
1063
+ let target = ctx.resolve_item(self.name_target(ctx));
1064
+ let mut path: Vec<_> = target
1065
+ .ancestors(ctx)
1066
+ .chain(iter::once(ctx.root_module().into()))
1067
+ .map(|id| ctx.resolve_item(id))
1068
+ .filter(|item| {
1069
+ item.id() == target.id() ||
1070
+ item.as_module().is_some_and(|module| {
1071
+ !module.is_inline() ||
1072
+ ctx.options().conservative_inline_namespaces
1073
+ })
1074
+ })
1075
+ .map(|item| {
1076
+ ctx.resolve_item(item.name_target(ctx))
1077
+ .name(ctx)
1078
+ .within_namespaces()
1079
+ .user_mangled(mangled)
1080
+ .get()
1081
+ })
1082
+ .collect();
1083
+ path.reverse();
1084
+ path
1085
+ }
1086
+
1087
+ /// Returns a prefix for the canonical name when C naming is enabled.
1088
+ fn c_naming_prefix(&self) -> Option<&str> {
1089
+ let ItemKind::Type(ref ty) = self.kind else {
1090
+ return None;
1091
+ };
1092
+
1093
+ Some(match ty.kind() {
1094
+ TypeKind::Comp(ref ci) => match ci.kind() {
1095
+ CompKind::Struct => "struct",
1096
+ CompKind::Union => "union",
1097
+ },
1098
+ TypeKind::Enum(..) => "enum",
1099
+ _ => return None,
1100
+ })
1101
+ }
1102
+
1103
+ /// Whether this is a `#[must_use]` type.
1104
+ pub(crate) fn must_use(&self, ctx: &BindgenContext) -> bool {
1105
+ self.annotations().must_use_type() || ctx.must_use_type_by_name(self)
1106
+ }
1107
+ }
1108
+
1109
+ impl<T> IsOpaque for T
1110
+ where
1111
+ T: Copy + Into<ItemId>,
1112
+ {
1113
+ type Extra = ();
1114
+
1115
+ fn is_opaque(&self, ctx: &BindgenContext, _: &()) -> bool {
1116
+ debug_assert!(
1117
+ ctx.in_codegen_phase(),
1118
+ "You're not supposed to call this yet"
1119
+ );
1120
+ ctx.resolve_item((*self).into()).is_opaque(ctx, &())
1121
+ }
1122
+ }
1123
+
1124
+ impl IsOpaque for Item {
1125
+ type Extra = ();
1126
+
1127
+ fn is_opaque(&self, ctx: &BindgenContext, _: &()) -> bool {
1128
+ debug_assert!(
1129
+ ctx.in_codegen_phase(),
1130
+ "You're not supposed to call this yet"
1131
+ );
1132
+ self.annotations.opaque() ||
1133
+ self.as_type().is_some_and(|ty| ty.is_opaque(ctx, self)) ||
1134
+ ctx.opaque_by_name(self.path_for_allowlisting(ctx))
1135
+ }
1136
+ }
1137
+
1138
+ impl<T> HasVtable for T
1139
+ where
1140
+ T: Copy + Into<ItemId>,
1141
+ {
1142
+ fn has_vtable(&self, ctx: &BindgenContext) -> bool {
1143
+ let id: ItemId = (*self).into();
1144
+ id.as_type_id(ctx).is_some_and(|id| {
1145
+ !matches!(ctx.lookup_has_vtable(id), HasVtableResult::No)
1146
+ })
1147
+ }
1148
+
1149
+ fn has_vtable_ptr(&self, ctx: &BindgenContext) -> bool {
1150
+ let id: ItemId = (*self).into();
1151
+ id.as_type_id(ctx).is_some_and(|id| {
1152
+ matches!(ctx.lookup_has_vtable(id), HasVtableResult::SelfHasVtable)
1153
+ })
1154
+ }
1155
+ }
1156
+
1157
+ impl HasVtable for Item {
1158
+ fn has_vtable(&self, ctx: &BindgenContext) -> bool {
1159
+ self.id().has_vtable(ctx)
1160
+ }
1161
+
1162
+ fn has_vtable_ptr(&self, ctx: &BindgenContext) -> bool {
1163
+ self.id().has_vtable_ptr(ctx)
1164
+ }
1165
+ }
1166
+
1167
+ impl<T> Sizedness for T
1168
+ where
1169
+ T: Copy + Into<ItemId>,
1170
+ {
1171
+ fn sizedness(&self, ctx: &BindgenContext) -> SizednessResult {
1172
+ let id: ItemId = (*self).into();
1173
+ id.as_type_id(ctx)
1174
+ .map_or(SizednessResult::default(), |id| ctx.lookup_sizedness(id))
1175
+ }
1176
+ }
1177
+
1178
+ impl Sizedness for Item {
1179
+ fn sizedness(&self, ctx: &BindgenContext) -> SizednessResult {
1180
+ self.id().sizedness(ctx)
1181
+ }
1182
+ }
1183
+
1184
+ impl<T> HasTypeParamInArray for T
1185
+ where
1186
+ T: Copy + Into<ItemId>,
1187
+ {
1188
+ fn has_type_param_in_array(&self, ctx: &BindgenContext) -> bool {
1189
+ debug_assert!(
1190
+ ctx.in_codegen_phase(),
1191
+ "You're not supposed to call this yet"
1192
+ );
1193
+ ctx.lookup_has_type_param_in_array(*self)
1194
+ }
1195
+ }
1196
+
1197
+ impl HasTypeParamInArray for Item {
1198
+ fn has_type_param_in_array(&self, ctx: &BindgenContext) -> bool {
1199
+ debug_assert!(
1200
+ ctx.in_codegen_phase(),
1201
+ "You're not supposed to call this yet"
1202
+ );
1203
+ ctx.lookup_has_type_param_in_array(self.id())
1204
+ }
1205
+ }
1206
+
1207
+ /// A set of items.
1208
+ pub(crate) type ItemSet = BTreeSet<ItemId>;
1209
+
1210
+ impl DotAttributes for Item {
1211
+ fn dot_attributes<W>(
1212
+ &self,
1213
+ ctx: &BindgenContext,
1214
+ out: &mut W,
1215
+ ) -> io::Result<()>
1216
+ where
1217
+ W: io::Write,
1218
+ {
1219
+ writeln!(
1220
+ out,
1221
+ "<tr><td>{:?}</td></tr>
1222
+ <tr><td>name</td><td>{}</td></tr>",
1223
+ self.id,
1224
+ self.name(ctx).get()
1225
+ )?;
1226
+
1227
+ if self.is_opaque(ctx, &()) {
1228
+ writeln!(out, "<tr><td>opaque</td><td>true</td></tr>")?;
1229
+ }
1230
+
1231
+ self.kind.dot_attributes(ctx, out)
1232
+ }
1233
+ }
1234
+
1235
+ impl<T> TemplateParameters for T
1236
+ where
1237
+ T: Copy + Into<ItemId>,
1238
+ {
1239
+ fn self_template_params(&self, ctx: &BindgenContext) -> Vec<TypeId> {
1240
+ ctx.resolve_item_fallible(*self)
1241
+ .map_or(vec![], |item| item.self_template_params(ctx))
1242
+ }
1243
+ }
1244
+
1245
+ impl TemplateParameters for Item {
1246
+ fn self_template_params(&self, ctx: &BindgenContext) -> Vec<TypeId> {
1247
+ self.kind.self_template_params(ctx)
1248
+ }
1249
+ }
1250
+
1251
+ impl TemplateParameters for ItemKind {
1252
+ fn self_template_params(&self, ctx: &BindgenContext) -> Vec<TypeId> {
1253
+ match *self {
1254
+ ItemKind::Type(ref ty) => ty.self_template_params(ctx),
1255
+ // If we start emitting bindings to explicitly instantiated
1256
+ // functions, then we'll need to check ItemKind::Function for
1257
+ // template params.
1258
+ ItemKind::Function(_) | ItemKind::Module(_) | ItemKind::Var(_) => {
1259
+ vec![]
1260
+ }
1261
+ }
1262
+ }
1263
+ }
1264
+
1265
+ // An utility function to handle recursing inside nested types.
1266
+ fn visit_child(
1267
+ cur: clang::Cursor,
1268
+ id: ItemId,
1269
+ ty: &clang::Type,
1270
+ parent_id: Option<ItemId>,
1271
+ ctx: &mut BindgenContext,
1272
+ result: &mut Result<TypeId, ParseError>,
1273
+ ) -> clang_sys::CXChildVisitResult {
1274
+ use clang_sys::*;
1275
+ if result.is_ok() {
1276
+ return CXChildVisit_Break;
1277
+ }
1278
+
1279
+ *result = Item::from_ty_with_id(id, ty, cur, parent_id, ctx);
1280
+
1281
+ match *result {
1282
+ Ok(..) => CXChildVisit_Break,
1283
+ Err(ParseError::Recurse) => {
1284
+ cur.visit(|c| visit_child(c, id, ty, parent_id, ctx, result));
1285
+ CXChildVisit_Continue
1286
+ }
1287
+ Err(ParseError::Continue) => CXChildVisit_Continue,
1288
+ }
1289
+ }
1290
+
1291
+ impl Item {
1292
+ /// Create a builtin type.
1293
+ pub(crate) fn builtin_type(
1294
+ kind: TypeKind,
1295
+ is_const: bool,
1296
+ ctx: &mut BindgenContext,
1297
+ ) -> TypeId {
1298
+ // Feel free to add more here, I'm just lazy.
1299
+ match kind {
1300
+ TypeKind::Void |
1301
+ TypeKind::Int(..) |
1302
+ TypeKind::Pointer(..) |
1303
+ TypeKind::Float(..) => {}
1304
+ _ => panic!("Unsupported builtin type"),
1305
+ }
1306
+
1307
+ let ty = Type::new(None, None, kind, is_const);
1308
+ let id = ctx.next_item_id();
1309
+ let module = ctx.root_module().into();
1310
+ ctx.add_item(
1311
+ Item::new(id, None, None, module, ItemKind::Type(ty), None),
1312
+ None,
1313
+ None,
1314
+ );
1315
+ id.as_type_id_unchecked()
1316
+ }
1317
+
1318
+ /// Parse this item from the given Clang cursor.
1319
+ pub(crate) fn parse(
1320
+ cursor: clang::Cursor,
1321
+ parent_id: Option<ItemId>,
1322
+ ctx: &mut BindgenContext,
1323
+ ) -> Result<ItemId, ParseError> {
1324
+ use crate::ir::var::Var;
1325
+ use clang_sys::*;
1326
+
1327
+ if !cursor.is_valid() {
1328
+ return Err(ParseError::Continue);
1329
+ }
1330
+
1331
+ let comment = cursor.raw_comment();
1332
+ let annotations = Annotations::new(&cursor);
1333
+
1334
+ let current_module = ctx.current_module().into();
1335
+ let relevant_parent_id = parent_id.unwrap_or(current_module);
1336
+
1337
+ #[allow(clippy::missing_docs_in_private_items)]
1338
+ macro_rules! try_parse {
1339
+ ($what:ident) => {
1340
+ match $what::parse(cursor, ctx) {
1341
+ Ok(ParseResult::New(item, declaration)) => {
1342
+ let id = ctx.next_item_id();
1343
+
1344
+ ctx.add_item(
1345
+ Item::new(
1346
+ id,
1347
+ comment,
1348
+ annotations,
1349
+ relevant_parent_id,
1350
+ ItemKind::$what(item),
1351
+ Some(cursor.location()),
1352
+ ),
1353
+ declaration,
1354
+ Some(cursor),
1355
+ );
1356
+ return Ok(id);
1357
+ }
1358
+ Ok(ParseResult::AlreadyResolved(id)) => {
1359
+ return Ok(id);
1360
+ }
1361
+ Err(ParseError::Recurse) => return Err(ParseError::Recurse),
1362
+ Err(ParseError::Continue) => {}
1363
+ }
1364
+ };
1365
+ }
1366
+
1367
+ try_parse!(Module);
1368
+
1369
+ // NOTE: Is extremely important to parse functions and vars **before**
1370
+ // types. Otherwise we can parse a function declaration as a type
1371
+ // (which is legal), and lose functions to generate.
1372
+ //
1373
+ // In general, I'm not totally confident this split between
1374
+ // ItemKind::Function and TypeKind::FunctionSig is totally worth it, but
1375
+ // I guess we can try.
1376
+ try_parse!(Function);
1377
+ try_parse!(Var);
1378
+
1379
+ // Types are sort of special, so to avoid parsing template classes
1380
+ // twice, handle them separately.
1381
+ {
1382
+ let definition = cursor.definition();
1383
+ let applicable_cursor = definition.unwrap_or(cursor);
1384
+
1385
+ let relevant_parent_id = match definition {
1386
+ Some(definition) => {
1387
+ if definition != cursor {
1388
+ ctx.add_semantic_parent(definition, relevant_parent_id);
1389
+ return Ok(Item::from_ty_or_ref(
1390
+ applicable_cursor.cur_type(),
1391
+ cursor,
1392
+ parent_id,
1393
+ ctx,
1394
+ )
1395
+ .into());
1396
+ }
1397
+ ctx.known_semantic_parent(definition)
1398
+ .or(parent_id)
1399
+ .unwrap_or_else(|| ctx.current_module().into())
1400
+ }
1401
+ None => relevant_parent_id,
1402
+ };
1403
+
1404
+ match Item::from_ty(
1405
+ &applicable_cursor.cur_type(),
1406
+ applicable_cursor,
1407
+ Some(relevant_parent_id),
1408
+ ctx,
1409
+ ) {
1410
+ Ok(ty) => return Ok(ty.into()),
1411
+ Err(ParseError::Recurse) => return Err(ParseError::Recurse),
1412
+ Err(ParseError::Continue) => {}
1413
+ }
1414
+ }
1415
+
1416
+ match cursor.kind() {
1417
+ // On Clang 18+, extern "C" is reported accurately as a LinkageSpec.
1418
+ // Older LLVM treat it as UnexposedDecl.
1419
+ CXCursor_LinkageSpec | CXCursor_UnexposedDecl => {
1420
+ Err(ParseError::Recurse)
1421
+ }
1422
+
1423
+ // We allowlist cursors here known to be unhandled, to prevent being
1424
+ // too noisy about this.
1425
+ CXCursor_MacroDefinition |
1426
+ CXCursor_MacroExpansion |
1427
+ CXCursor_UsingDeclaration |
1428
+ CXCursor_UsingDirective |
1429
+ CXCursor_StaticAssert |
1430
+ CXCursor_FunctionTemplate => {
1431
+ debug!("Unhandled cursor kind {:?}: {cursor:?}", cursor.kind());
1432
+ Err(ParseError::Continue)
1433
+ }
1434
+
1435
+ CXCursor_InclusionDirective => {
1436
+ let file = cursor.get_included_file_name();
1437
+ match file {
1438
+ None => {
1439
+ warn!("Inclusion of a nameless file in {cursor:?}");
1440
+ }
1441
+ Some(included_file) => {
1442
+ for cb in &ctx.options().parse_callbacks {
1443
+ cb.include_file(&included_file);
1444
+ }
1445
+
1446
+ ctx.add_dep(included_file.into_boxed_str());
1447
+ }
1448
+ }
1449
+ Err(ParseError::Continue)
1450
+ }
1451
+
1452
+ _ => {
1453
+ // ignore toplevel operator overloads
1454
+ let spelling = cursor.spelling();
1455
+ if !spelling.starts_with("operator") {
1456
+ warn!(
1457
+ "Unhandled cursor kind {:?}: {cursor:?}",
1458
+ cursor.kind(),
1459
+ );
1460
+ }
1461
+ Err(ParseError::Continue)
1462
+ }
1463
+ }
1464
+ }
1465
+
1466
+ /// Parse this item from the given Clang type, or if we haven't resolved all
1467
+ /// the other items this one depends on, an unresolved reference.
1468
+ pub(crate) fn from_ty_or_ref(
1469
+ ty: clang::Type,
1470
+ location: clang::Cursor,
1471
+ parent_id: Option<ItemId>,
1472
+ ctx: &mut BindgenContext,
1473
+ ) -> TypeId {
1474
+ let id = ctx.next_item_id();
1475
+ Self::from_ty_or_ref_with_id(id, ty, location, parent_id, ctx)
1476
+ }
1477
+
1478
+ /// Parse a C++ type. If we find a reference to a type that has not been
1479
+ /// defined yet, use `UnresolvedTypeRef` as a placeholder.
1480
+ ///
1481
+ /// This logic is needed to avoid parsing items with the incorrect parent
1482
+ /// and it's sort of complex to explain, so I'll just point to
1483
+ /// `tests/headers/typeref.hpp` to see the kind of constructs that forced
1484
+ /// this.
1485
+ ///
1486
+ /// Typerefs are resolved once parsing is completely done, see
1487
+ /// `BindgenContext::resolve_typerefs`.
1488
+ pub(crate) fn from_ty_or_ref_with_id(
1489
+ potential_id: ItemId,
1490
+ ty: clang::Type,
1491
+ location: clang::Cursor,
1492
+ parent_id: Option<ItemId>,
1493
+ ctx: &mut BindgenContext,
1494
+ ) -> TypeId {
1495
+ debug!("from_ty_or_ref_with_id: {potential_id:?} {ty:?}, {location:?}, {parent_id:?}");
1496
+
1497
+ if ctx.collected_typerefs() {
1498
+ debug!("refs already collected, resolving directly");
1499
+ return Item::from_ty_with_id(
1500
+ potential_id,
1501
+ &ty,
1502
+ location,
1503
+ parent_id,
1504
+ ctx,
1505
+ )
1506
+ .unwrap_or_else(|_| Item::new_opaque_type(potential_id, &ty, ctx));
1507
+ }
1508
+
1509
+ if let Some(ty) = ctx.builtin_or_resolved_ty(
1510
+ potential_id,
1511
+ parent_id,
1512
+ &ty,
1513
+ Some(location),
1514
+ ) {
1515
+ debug!("{ty:?} already resolved: {location:?}");
1516
+ return ty;
1517
+ }
1518
+
1519
+ debug!("New unresolved type reference: {ty:?}, {location:?}");
1520
+
1521
+ let is_const = ty.is_const();
1522
+ let kind = TypeKind::UnresolvedTypeRef(ty, location, parent_id);
1523
+ let current_module = ctx.current_module();
1524
+
1525
+ ctx.add_item(
1526
+ Item::new(
1527
+ potential_id,
1528
+ None,
1529
+ None,
1530
+ parent_id.unwrap_or_else(|| current_module.into()),
1531
+ ItemKind::Type(Type::new(None, None, kind, is_const)),
1532
+ Some(location.location()),
1533
+ ),
1534
+ None,
1535
+ None,
1536
+ );
1537
+ potential_id.as_type_id_unchecked()
1538
+ }
1539
+
1540
+ /// Parse this item from the given Clang type. See [`Item::from_ty_with_id`].
1541
+ pub(crate) fn from_ty(
1542
+ ty: &clang::Type,
1543
+ location: clang::Cursor,
1544
+ parent_id: Option<ItemId>,
1545
+ ctx: &mut BindgenContext,
1546
+ ) -> Result<TypeId, ParseError> {
1547
+ let id = ctx.next_item_id();
1548
+ Item::from_ty_with_id(id, ty, location, parent_id, ctx)
1549
+ }
1550
+
1551
+ /// This is one of the trickiest methods you'll find (probably along with
1552
+ /// some of the ones that handle templates in `BindgenContext`).
1553
+ ///
1554
+ /// This method parses a type, given the potential ID of that type (if
1555
+ /// parsing it was correct), an optional location we're scanning, which is
1556
+ /// critical some times to obtain information, an optional parent item ID,
1557
+ /// that will, if it's `None`, become the current module ID, and the
1558
+ /// context.
1559
+ pub(crate) fn from_ty_with_id(
1560
+ id: ItemId,
1561
+ ty: &clang::Type,
1562
+ location: clang::Cursor,
1563
+ parent_id: Option<ItemId>,
1564
+ ctx: &mut BindgenContext,
1565
+ ) -> Result<TypeId, ParseError> {
1566
+ use clang_sys::*;
1567
+
1568
+ debug!(
1569
+ "Item::from_ty_with_id: {id:?}\n\
1570
+ \tty = {ty:?},\n\
1571
+ \tlocation = {location:?}",
1572
+ );
1573
+
1574
+ if ty.kind() == CXType_Unexposed ||
1575
+ location.cur_type().kind() == CXType_Unexposed
1576
+ {
1577
+ if ty.is_associated_type() ||
1578
+ location.cur_type().is_associated_type()
1579
+ {
1580
+ return Ok(Item::new_opaque_type(id, ty, ctx));
1581
+ }
1582
+
1583
+ if let Some(param_id) = Item::type_param(None, location, ctx) {
1584
+ return Ok(ctx.build_ty_wrapper(id, param_id, None, ty));
1585
+ }
1586
+ }
1587
+
1588
+ // Treat all types that are declared inside functions as opaque. The Rust binding
1589
+ // won't be able to do anything with them anyway.
1590
+ //
1591
+ // (If we don't do this check here, we can have subtle logic bugs because we generally
1592
+ // ignore function bodies. See issue #2036.)
1593
+ if let Some(ref parent) = ty.declaration().fallible_semantic_parent() {
1594
+ if FunctionKind::from_cursor(parent).is_some() {
1595
+ debug!("Skipping type declared inside function: {ty:?}");
1596
+ return Ok(Item::new_opaque_type(id, ty, ctx));
1597
+ }
1598
+ }
1599
+
1600
+ let decl = {
1601
+ let canonical_def = ty.canonical_type().declaration().definition();
1602
+ canonical_def.unwrap_or_else(|| ty.declaration())
1603
+ };
1604
+
1605
+ let comment = location.raw_comment().or_else(|| decl.raw_comment());
1606
+
1607
+ let annotations =
1608
+ Annotations::new(&decl).or_else(|| Annotations::new(&location));
1609
+
1610
+ if let Some(ref annotations) = annotations {
1611
+ if let Some(replaced) = annotations.use_instead_of() {
1612
+ ctx.replace(replaced, id);
1613
+ }
1614
+ }
1615
+
1616
+ if let Some(ty) =
1617
+ ctx.builtin_or_resolved_ty(id, parent_id, ty, Some(location))
1618
+ {
1619
+ return Ok(ty);
1620
+ }
1621
+
1622
+ // First, check we're not recursing.
1623
+ let mut valid_decl = decl.kind() != CXCursor_NoDeclFound;
1624
+ let declaration_to_look_for = if valid_decl {
1625
+ decl.canonical()
1626
+ } else if location.kind() == CXCursor_ClassTemplate {
1627
+ valid_decl = true;
1628
+ location
1629
+ } else {
1630
+ decl
1631
+ };
1632
+
1633
+ if valid_decl {
1634
+ if let Some(partial) = ctx
1635
+ .currently_parsed_types()
1636
+ .iter()
1637
+ .find(|ty| *ty.decl() == declaration_to_look_for)
1638
+ {
1639
+ debug!("Avoiding recursion parsing type: {ty:?}");
1640
+ // Unchecked because we haven't finished this type yet.
1641
+ return Ok(partial.id().as_type_id_unchecked());
1642
+ }
1643
+ }
1644
+
1645
+ let current_module = ctx.current_module().into();
1646
+ let partial_ty = PartialType::new(declaration_to_look_for, id);
1647
+ if valid_decl {
1648
+ ctx.begin_parsing(partial_ty);
1649
+ }
1650
+
1651
+ let result = Type::from_clang_ty(id, ty, location, parent_id, ctx);
1652
+ let relevant_parent_id = parent_id.unwrap_or(current_module);
1653
+ let ret = match result {
1654
+ Ok(ParseResult::AlreadyResolved(ty)) => {
1655
+ Ok(ty.as_type_id_unchecked())
1656
+ }
1657
+ Ok(ParseResult::New(item, declaration)) => {
1658
+ ctx.add_item(
1659
+ Item::new(
1660
+ id,
1661
+ comment,
1662
+ annotations,
1663
+ relevant_parent_id,
1664
+ ItemKind::Type(item),
1665
+ Some(location.location()),
1666
+ ),
1667
+ declaration,
1668
+ Some(location),
1669
+ );
1670
+ Ok(id.as_type_id_unchecked())
1671
+ }
1672
+ Err(ParseError::Continue) => Err(ParseError::Continue),
1673
+ Err(ParseError::Recurse) => {
1674
+ debug!("Item::from_ty recursing in the ast");
1675
+ let mut result = Err(ParseError::Recurse);
1676
+
1677
+ // Need to pop here, otherwise we'll get stuck.
1678
+ //
1679
+ // TODO: Find a nicer interface, really. Also, the
1680
+ // declaration_to_look_for suspiciously shares a lot of
1681
+ // logic with ir::context, so we should refactor that.
1682
+ if valid_decl {
1683
+ let finished = ctx.finish_parsing();
1684
+ assert_eq!(*finished.decl(), declaration_to_look_for);
1685
+ }
1686
+
1687
+ location.visit(|cur| {
1688
+ visit_child(cur, id, ty, parent_id, ctx, &mut result)
1689
+ });
1690
+
1691
+ if valid_decl {
1692
+ let partial_ty =
1693
+ PartialType::new(declaration_to_look_for, id);
1694
+ ctx.begin_parsing(partial_ty);
1695
+ }
1696
+
1697
+ // If we have recursed into the AST all we know, and we still
1698
+ // haven't found what we've got, let's just try and make a named
1699
+ // type.
1700
+ //
1701
+ // This is what happens with some template members, for example.
1702
+ if let Err(ParseError::Recurse) = result {
1703
+ warn!(
1704
+ "Unknown type, assuming named template type: \
1705
+ id = {:?}; spelling = {}",
1706
+ id,
1707
+ ty.spelling()
1708
+ );
1709
+ Item::type_param(Some(id), location, ctx)
1710
+ .ok_or(ParseError::Recurse)
1711
+ } else {
1712
+ result
1713
+ }
1714
+ }
1715
+ };
1716
+
1717
+ if valid_decl {
1718
+ let partial_ty = ctx.finish_parsing();
1719
+ assert_eq!(*partial_ty.decl(), declaration_to_look_for);
1720
+ }
1721
+
1722
+ ret
1723
+ }
1724
+
1725
+ /// A named type is a template parameter, e.g., the `T` in `Foo<T>`. They're always local so
1726
+ /// it's the only exception when there's no declaration for a type.
1727
+ pub(crate) fn type_param(
1728
+ with_id: Option<ItemId>,
1729
+ location: clang::Cursor,
1730
+ ctx: &mut BindgenContext,
1731
+ ) -> Option<TypeId> {
1732
+ let ty = location.cur_type();
1733
+
1734
+ debug!(
1735
+ "Item::type_param:\n\
1736
+ \twith_id = {:?},\n\
1737
+ \tty = {} {:?},\n\
1738
+ \tlocation: {:?}",
1739
+ with_id,
1740
+ ty.spelling(),
1741
+ ty,
1742
+ location
1743
+ );
1744
+
1745
+ if ty.kind() != clang_sys::CXType_Unexposed {
1746
+ // If the given cursor's type's kind is not Unexposed, then we
1747
+ // aren't looking at a template parameter. This check may need to be
1748
+ // updated in the future if they start properly exposing template
1749
+ // type parameters.
1750
+ return None;
1751
+ }
1752
+
1753
+ let ty_spelling = ty.spelling();
1754
+
1755
+ // Clang does not expose any information about template type parameters
1756
+ // via their clang::Type, nor does it give us their canonical cursors
1757
+ // the straightforward way. However, there are three situations from
1758
+ // which we can find the definition of the template type parameter, if
1759
+ // the cursor is indeed looking at some kind of a template type
1760
+ // parameter or use of one:
1761
+ //
1762
+ // 1. The cursor is pointing at the template type parameter's
1763
+ // definition. This is the trivial case.
1764
+ //
1765
+ // (kind = TemplateTypeParameter, ...)
1766
+ //
1767
+ // 2. The cursor is pointing at a TypeRef whose referenced() cursor is
1768
+ // situation (1).
1769
+ //
1770
+ // (kind = TypeRef,
1771
+ // referenced = (kind = TemplateTypeParameter, ...),
1772
+ // ...)
1773
+ //
1774
+ // 3. The cursor is pointing at some use of a template type parameter
1775
+ // (for example, in a FieldDecl), and this cursor has a child cursor
1776
+ // whose spelling is the same as the parent's type's spelling, and whose
1777
+ // kind is a TypeRef of the situation (2) variety.
1778
+ //
1779
+ // (kind = FieldDecl,
1780
+ // type = (kind = Unexposed,
1781
+ // spelling = "T",
1782
+ // ...),
1783
+ // children =
1784
+ // (kind = TypeRef,
1785
+ // spelling = "T",
1786
+ // referenced = (kind = TemplateTypeParameter,
1787
+ // spelling = "T",
1788
+ // ...),
1789
+ // ...)
1790
+ // ...)
1791
+ //
1792
+ // TODO: The alternative to this hacky pattern matching would be to
1793
+ // maintain proper scopes of template parameters while parsing and use
1794
+ // de Brujin indices to access template parameters, which clang exposes
1795
+ // in the cursor's type's canonical type's spelling:
1796
+ // "type-parameter-x-y". That is probably a better approach long-term,
1797
+ // but maintaining these scopes properly would require more changes to
1798
+ // the whole libclang -> IR parsing code.
1799
+
1800
+ fn is_template_with_spelling(
1801
+ refd: &clang::Cursor,
1802
+ spelling: &str,
1803
+ ) -> bool {
1804
+ static ANON_TYPE_PARAM_RE: OnceLock<regex::Regex> = OnceLock::new();
1805
+ let anon_type_param_re = ANON_TYPE_PARAM_RE.get_or_init(|| {
1806
+ regex::Regex::new(r"^type\-parameter\-\d+\-\d+$").unwrap()
1807
+ });
1808
+
1809
+ if refd.kind() != clang_sys::CXCursor_TemplateTypeParameter {
1810
+ return false;
1811
+ }
1812
+
1813
+ let refd_spelling = refd.spelling();
1814
+ refd_spelling == spelling ||
1815
+ // Allow for anonymous template parameters.
1816
+ (refd_spelling.is_empty() && anon_type_param_re.is_match(spelling.as_ref()))
1817
+ }
1818
+
1819
+ let definition = if is_template_with_spelling(&location, &ty_spelling) {
1820
+ // Situation (1)
1821
+ location
1822
+ } else if location.kind() == clang_sys::CXCursor_TypeRef {
1823
+ // Situation (2)
1824
+ match location.referenced() {
1825
+ Some(refd)
1826
+ if is_template_with_spelling(&refd, &ty_spelling) =>
1827
+ {
1828
+ refd
1829
+ }
1830
+ _ => return None,
1831
+ }
1832
+ } else {
1833
+ // Situation (3)
1834
+ let mut definition = None;
1835
+
1836
+ location.visit(|child| {
1837
+ let child_ty = child.cur_type();
1838
+ if child_ty.kind() == clang_sys::CXCursor_TypeRef &&
1839
+ child_ty.spelling() == ty_spelling
1840
+ {
1841
+ match child.referenced() {
1842
+ Some(refd)
1843
+ if is_template_with_spelling(
1844
+ &refd,
1845
+ &ty_spelling,
1846
+ ) =>
1847
+ {
1848
+ definition = Some(refd);
1849
+ return clang_sys::CXChildVisit_Break;
1850
+ }
1851
+ _ => {}
1852
+ }
1853
+ }
1854
+
1855
+ clang_sys::CXChildVisit_Continue
1856
+ });
1857
+
1858
+ definition?
1859
+ };
1860
+ assert!(is_template_with_spelling(&definition, &ty_spelling));
1861
+
1862
+ // Named types are always parented to the root module. They are never
1863
+ // referenced with namespace prefixes, and they can't inherit anything
1864
+ // from their parent either, so it is simplest to just hang them off
1865
+ // something we know will always exist.
1866
+ let parent = ctx.root_module().into();
1867
+
1868
+ if let Some(id) = ctx.get_type_param(&definition) {
1869
+ return Some(if let Some(with_id) = with_id {
1870
+ ctx.build_ty_wrapper(with_id, id, Some(parent), &ty)
1871
+ } else {
1872
+ id
1873
+ });
1874
+ }
1875
+
1876
+ // See tests/headers/const_tparam.hpp and
1877
+ // tests/headers/variadic_tname.hpp.
1878
+ let name = ty_spelling.replace("const ", "").replace('.', "");
1879
+
1880
+ let id = with_id.unwrap_or_else(|| ctx.next_item_id());
1881
+ let item = Item::new(
1882
+ id,
1883
+ None,
1884
+ None,
1885
+ parent,
1886
+ ItemKind::Type(Type::named(name)),
1887
+ Some(location.location()),
1888
+ );
1889
+ ctx.add_type_param(item, definition);
1890
+ Some(id.as_type_id_unchecked())
1891
+ }
1892
+ }
1893
+
1894
+ impl ItemCanonicalName for Item {
1895
+ fn canonical_name(&self, ctx: &BindgenContext) -> String {
1896
+ debug_assert!(
1897
+ ctx.in_codegen_phase(),
1898
+ "You're not supposed to call this yet"
1899
+ );
1900
+ self.canonical_name
1901
+ .get_or_init(|| {
1902
+ let in_namespace = ctx.options().enable_cxx_namespaces ||
1903
+ ctx.options().disable_name_namespacing;
1904
+
1905
+ if in_namespace {
1906
+ self.name(ctx).within_namespaces().get()
1907
+ } else {
1908
+ self.name(ctx).get()
1909
+ }
1910
+ })
1911
+ .clone()
1912
+ }
1913
+ }
1914
+
1915
+ impl ItemCanonicalPath for Item {
1916
+ fn namespace_aware_canonical_path(
1917
+ &self,
1918
+ ctx: &BindgenContext,
1919
+ ) -> Vec<String> {
1920
+ let mut path = self.canonical_path(ctx);
1921
+
1922
+ // ASSUMPTION: (disable_name_namespacing && cxx_namespaces)
1923
+ // is equivalent to
1924
+ // disable_name_namespacing
1925
+ if ctx.options().disable_name_namespacing {
1926
+ // Only keep the last item in path
1927
+ let split_idx = path.len() - 1;
1928
+ path = path.split_off(split_idx);
1929
+ } else if !ctx.options().enable_cxx_namespaces {
1930
+ // Ignore first item "root"
1931
+ path = vec![path[1..].join("_")];
1932
+ }
1933
+
1934
+ if self.is_constified_enum_module(ctx) {
1935
+ path.push(CONSTIFIED_ENUM_MODULE_REPR_NAME.into());
1936
+ }
1937
+
1938
+ path
1939
+ }
1940
+
1941
+ fn canonical_path(&self, ctx: &BindgenContext) -> Vec<String> {
1942
+ self.compute_path(ctx, UserMangled::Yes)
1943
+ }
1944
+ }
1945
+
1946
+ /// Whether to use the user-mangled name (mangled by the `item_name` callback or
1947
+ /// not.
1948
+ ///
1949
+ /// Most of the callers probably want just yes, but the ones dealing with
1950
+ /// allowlisting and blocklisting don't.
1951
+ #[derive(Copy, Clone, Debug, PartialEq)]
1952
+ enum UserMangled {
1953
+ No,
1954
+ Yes,
1955
+ }
1956
+
1957
+ /// Builder struct for naming variations, which hold inside different
1958
+ /// flags for naming options.
1959
+ #[derive(Debug)]
1960
+ pub(crate) struct NameOptions<'a> {
1961
+ item: &'a Item,
1962
+ ctx: &'a BindgenContext,
1963
+ within_namespaces: bool,
1964
+ user_mangled: UserMangled,
1965
+ }
1966
+
1967
+ impl<'a> NameOptions<'a> {
1968
+ /// Construct a new `NameOptions`
1969
+ pub(crate) fn new(item: &'a Item, ctx: &'a BindgenContext) -> Self {
1970
+ NameOptions {
1971
+ item,
1972
+ ctx,
1973
+ within_namespaces: false,
1974
+ user_mangled: UserMangled::Yes,
1975
+ }
1976
+ }
1977
+
1978
+ /// Construct the name without the item's containing C++ namespaces mangled
1979
+ /// into it. In other words, the item's name within the item's namespace.
1980
+ pub(crate) fn within_namespaces(&mut self) -> &mut Self {
1981
+ self.within_namespaces = true;
1982
+ self
1983
+ }
1984
+
1985
+ fn user_mangled(&mut self, user_mangled: UserMangled) -> &mut Self {
1986
+ self.user_mangled = user_mangled;
1987
+ self
1988
+ }
1989
+
1990
+ /// Construct a name `String`
1991
+ pub(crate) fn get(&self) -> String {
1992
+ self.item.real_canonical_name(self.ctx, self)
1993
+ }
1994
+ }